程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 分享下mysql各個主要版本之間的差異

分享下mysql各個主要版本之間的差異

編輯:MySQL綜合教程

一、各版本的常用命令差異

  show innodb status\G mysql-5.1

  show engines innodb status\G mysql-5.5

  關於grant授權 mysql-5.5 的 user@'%'不包含localhost

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

  mysql-server-4.1

  增加了子查詢的支持,字符集增加UTF-8,GROUP BY語句增加了ROLLUP,mysql.user表采用了更好的加密算法,innodb開始支持單獨的表空間。

  mysql-server-5.0

  增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增加了INFORATION_SCHEMA系統數據庫。

  mysql-server-5.1

  增加了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global級別動態修改general query log和slow query log的支持。

  小版本的重要特性:

  5.1.2 開始支持微秒級的慢查詢。關於慢查詢相關信息請參考 http://linuxguest.blog.51cto.com/195664/721042

  mysql-server-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監控服務器運行時的性能。

  小版本的重要特性:

  percona-server-5.5.18.23支持group commit 參考:http://www.orczhou.com/index.php/2011/12/time-to-group-commit-2/

  mysql-server-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位置信息,對數據庫的監管很不方便)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved