MySQL 5.0/5.1/5.5/5.6 各版本的主要區別 (主要是在5.0和其他版本的區別)

公司的有個項目是用mysql的做的,我自己的機子上裝的是mysql 5.0 ,我的上司裝的是5.1.在用spring 的jdbcTemple的方式進行查詢,然後把查詢出來的list<map>直接放在json的格式中,但一直無法解析。但我上司那邊就可以解析,鬱悶了,找了老半天都找不出原因,各個問題都排除了,最終無奈改了下mysql的版本,用上mysql 5.1,神奇的事情發生了,可以解析了。

我特意去學習了下各個版本的區別。

-----下面的抄別人的,

  1. MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區別  
  2.  
  3. 1、4.1 增加了子查詢的支持,字符集增加UTF-8,GROUP BY語句增加了ROLLUP,mysql.user表採用了更好的加密算法。  
  4.  
  5. 2、5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增加了INFORATION_SCHEMA系統數據庫。  
  6.  
  7. 3、5.1 增加了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global級別動態修改general query log和slow query log的支持。  
  8.  
  9. 4、5.5的新特徵  
  10.  
  11. 1)默認存儲引擎更改爲InnoDB  
  12.  
  13. 2)提高性能和可擴展性  
  14.  
  15. a. 提高了默認線程併發數(innodb_thread_concurrency)  
  16.  
  17. b. 後臺輸入/輸出線程控制(innodb_read_io_threads、innodb_write_io_threads)  
  18.  
  19. c. 主線程輸入/輸出速率控制(innodb_io_capacity)  
  20.  
  21. d.  操作系統內存分配程序使用控制(innodb_use_sys_malloc)  
  22.  
  23. e.   適應性散列索引(Hash Index)控制,用戶可以關閉適應性散列功能。  
  24.  
  25. f.   插入緩衝(Insert Buffering)控制,用戶可以關閉innodb的插入緩衝功能。  
  26.  
  27. g.  通過快速加鎖算法提高可擴展性,innodb不在使用代理(posix)線程,而是使用原生的獨立操作來完成互斥和讀寫鎖定。  
  28.  
  29. h.  恢復組提交(Restored Group Commit)  
  30.  
  31. i.   提高恢復性能  
  32.  
  33. j.  多緩衝池實例  
  34.  
  35. k.  多個回滾段(Multiple Rollback Segments),之前的innodb版本最大能處理1023個併發處理操作,現在mysql5.5可以處理高達128K的併發事物,  
  36.  
  37. l.   Linux系統固有的異步輸入/輸出,mysql5.5數據庫系統也提高了linux系統的輸入輸出請求的併發數。  
  38.  
  39. m. 擴展變化緩衝:添加了刪除緩衝和清除緩衝  
  40.  
  41. n.  改善了日誌系統互斥和單獨刷新(Flush)列表互斥  
  42.  
  43. o.  改善清除程序進度,在mysql5.5中清楚操作線程是獨立的線程,並支持併發,可以使用innodb_purge_treads配置。  
  44.  
  45. p.  改善事務處理中的元數據鎖定。例如,事物中一個語句需要鎖一個表,會在事物結束時釋放這個表,而不是像以前在語句結束時釋放表。  
  46.  
  47. 3)提高實用性  
  48.  
  49. a.  半同步複製(Semi-synchronous Replication)  
  50.  
  51. b.  複製Heartbeat  
  52.  
  53. c.  中繼日誌自動恢復(Automatic Relay Log Recovery)  
  54.  
  55. d.  根據服務器過濾項複製(Replication Per Server Filtering)  
  56.  
  57. e.  從服務器複製支持的數據類型轉換(Replication Slave Side Data Type Conversions)  
  58.  
  59. 4)提高易管理性和效率  
  60.  
  61. a.  建立快速索引(Faster Index Creation)  
  62.  
  63. b.  高效的數據壓縮(Efficient Data Compression)   
  64.  
  65. c.  爲大物件和可變長度列提供高效存儲   
  66.  
  67. d.   增加了INFORMATION_SCHEMA表,新的表提供了與InnoDB壓縮和事務處理鎖定有關的具體信息。  
  68.  
  69.    
  70.  
  71. 5)提高可用性  
  72.  
  73. a.  針對SIGNAL/RESIGNAL的新SQL語法  
  74.  
  75. b.   新的表/索引分區選項。MySQL5.5將表和索引RANG和LIST分區範圍擴展到了非整數列和日期,並增加了在多個列上分區的能力。  
  76.  
  77. 6)改善檢測和診斷  
  78.  
  79.  Mysql5.5引入了一種新的性能架構(performancn_shema,P_S),用於監控mysql監控服務器運行時的性能。
  80.  
  81.  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位置信息,對數據庫的監管很不方便)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章