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,神奇的事情發生了,能夠解析了。mysql

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

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

  
  
  
  
  1. MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區別  
  2.  
  3. 一、4.1 增長了子查詢的支持,字符集增長UTF-8,GROUP BY語句增長了ROLLUP,mysql.user表採用了更好的加密算法。  
  4.  
  5. 二、5.0 增長了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增長了INFORATION_SCHEMA系統數據庫。  
  6.  
  7. 三、5.1 增長了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global級別動態修改general query log和slow query log的支持。  
  8.  
  9. 四、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.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位置信息,對數據庫的監管很不方便) 
相關文章
相關標籤/搜索