1. 程式人生 > >MySQL 4.1/5.0/5.1/5.5/5.6/5.7各版本的主要區別

MySQL 4.1/5.0/5.1/5.5/5.6/5.7各版本的主要區別

mysql的50版本和51版本的區別:
一、5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支援,增加了INFORATION_SCHEMA系統資料庫。 
二、5.1 增加了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global級別動態修改general query log和slow query log的支援。 

MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區別 

1、4.1 增加了子查詢的支援,字符集增加UTF-8,GROUP BY語句增加了ROLLUP,mysql.user表採用了更好的加密演算法。 

2、5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支援,增加了INFORATION_SCHEMA
系統資料庫
。 3、5.1 增加了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global級別動態修改general query log和slow query log的支援。 4、5.5的新特徵 1)預設儲存引擎更改為InnoDB 2)提高效能和可擴充套件性 a. 提高了預設執行緒併發數(innodb_thread_concurrency) b. 後臺輸入/輸出執行緒控制(innodb_read_io_threads、innodb_write_io_threads) c. 主執行緒輸入/輸出速率控制(innodb_io_capacity) d.
作業系統
記憶體分配程式使用控制(innodb_use_sys_malloc) e. 適應性雜湊索引(Hash Index)控制,使用者可以關閉適應性雜湊功能。 f. 插入緩衝(Insert Buffering)控制,使用者可以關閉innodb的插入緩衝功能。 g. 通過快速加鎖演算法提高可擴充套件性,innodb不在使用代理(posix)執行緒,而是使用原生的獨立操作來完成互斥和讀寫鎖定。 h. 恢復組提交(Restored Group Commit) i. 提高恢復效能 j. 多緩衝池例項 k. 多個回滾段(Multiple Rollback Segments),之前的innodb版本最大能處理1023個併發處理操作,現在mysql5.5可以處理高達128K的併發事物, l.
Linux系統
固有的非同步輸入/輸出,mysql5.5資料庫系統也提高了linux系統的輸入輸出請求的併發數。 m. 擴充套件變化緩衝:添加了刪除緩衝和清除緩衝 n. 改善了日誌系統互斥和單獨重新整理(Flush)列表互斥 o. 改善清除程式進度,在mysql5.5中清楚操作執行緒是獨立的執行緒,並支援併發,可以使用innodb_purge_treads配置。 p. 改善事務處理中的元資料鎖定。例如,事物中一個語句需要鎖一個表,會在事物結束時釋放這個表,而不是像以前在語句結束時釋放表。 3)提高實用性 a. 半同步複製(Semi-synchronous Replication) b. 複製Heartbeat c. 中繼日誌自動恢復(Automatic Relay Log Recovery) d. 根據伺服器過濾項複製(Replication Per Server Filtering) e. 從伺服器複製支援的資料型別轉換(Replication Slave Side Data Type Conversions) 4)提高易管理性和效率 a. 建立快速索引(Faster Index Creation) b. 高效的資料壓縮(Efficient Data Compression) c. 為大物件和可變長度列提供高效儲存 d. 增加了INFORMATION_SCHEMA表,新的表提供了與InnoDB壓縮和事務處理鎖定有關的具體資訊。 5)提高可用性 a. 針對SIGNAL/RESIGNAL的新SQL語法 b. 新的表/索引分割槽選項。MySQL5.5將表和索引RANG和LIST分割槽範圍擴充套件到了非整數列和日期,並增加了在多個列上分割槽的能力。 6)改善檢測和診斷 Mysql5.5引入了一種新的效能架構(performancn_shema,P_S),用於監控mysql監控伺服器執行時的效能。 5、5.6的新特徵 1)InnoDB現在可以限制大量表開啟的時候記憶體佔用過多的問題(比如這裡提到的)(第三方已有補丁) 2)InnoDB效能加強。如分拆kernel mutex;flush操作從主執行緒分離;多個perge執行緒;大記憶體優化等 3)InnoDB死鎖資訊可以記錄到 error 日誌,方便分析 4)MySQL5.6支援延時複製,可以讓slave跟master之間控制一個時間間隔,方便特殊情況下的資料恢復。 5)表分割槽功能增強 6)MySQL行級複製功能加強,可以降低磁碟、記憶體、網路等資源開銷(只記錄能確定行記錄的欄位即可) 7)Binlog實現 crash-safe 8)複製事件採用crc32校驗,增強master/slave 複製資料一致性 9)新增 log_bin_basename (以前variables裡面沒有binlog位置資訊,對資料庫的監管很不方便)
MySQL 5.7 已經開發兩年了。相比 MySQL 5.6,有特別多的改進。團隊主要關注速度,效能據報告是比之前版本提升了 2 至 3 倍!
新特性列表,主要改進:
提升 MySQL 安全性

改進了安裝程式
MySQL 5.6 中,mysql_install_db 在資料庫建立的時候提供選項來生成 random password。
MySQL 5.7.4 中,可以跳過 -skip-random-password 選項來預設生成隨機密碼。
MySQL 5.7.5 中,還是預設生成隨機密碼,但是選項修改為 –insecure
而現在,MySQL 5.7.6 廢棄了 mysql_install_db,使用 mysqld –initialize (formerly known as “mysqld –bootstrap,” now deprecated.) 替代。