Mysql5.5 特性,相對於Mysql5.1
效能提升
預設InnoDB plugin引擎。具有提交、回滾和crash恢復功能、ACID相容。
行級鎖定(一致性的非鎖定讀取 MVCC)。
表與索引儲存在表空間、表大小無限制。
支援dynamic(primary key快取記憶體 避免主鍵查詢所引起的IO )與compressed(支援資料及索引壓縮)行格式。
InnoDB plugin檔案格式Barracuda、支援表壓縮、節約儲存、提供記憶體命中率、truncate table速度更快。
原InnoDB只有一個UndoSegment,最多支援1023的並發;現在有128個Segments,支援128K個並發(同樣,解決高並發帶來的事務回滾)。
Innodb_thread_concurrency預設為0,執行緒並發數無限制,可依具體應用設定最佳值。
Innodb_io_capacity可以動態調整刷新髒頁的數量,改善大批量更新時刷新髒頁跟不上導致的效能下降問題。 Default:200,跟硬碟的IOPS有關。
充分利用CPU多核心處理能力innodb_read_io_threads閾值:1-64innodb_write_io_threads 閾值:1-64根據資料庫的讀寫比靈活設置,充分發揮多CPU、儲存設備的效能,不支援動態負載 。
自適應刷新髒頁
熱資料存活更久
buffer pool多實例 :innodb_buffer_pool_instatexs 參數過inn
Linux上實現非同步IO
重新支援組提交
穩定性提升
支持半同步Replication。
增加Relay Log 自修功能。
Crash recovery。
引入紅-黑樹做插入排序的中間資料結構,時間複雜度大幅降低,減少恢復時間。
Thread Pool 分組排隊限流
Mysql5.6 特性,比較5.5
預設參數的改變
支援online達露增參數innodb_page_size可以設定page大小
整合了memcached API,可以使用API來直接存取innodb表,並非SQL(減少SQL解析、查詢最佳化代價)
innodb只讀取事務,不需要設定TRX_ID字段,
減少內部資料結構開銷,減少read view
Mysql5.7 特性,相較於5.5 5.6
安全性
用戶表sqlmyative 的密碼碼密碼格式;
增加密碼過期機制,過期後需要修改密碼,否則可能會被停用,或進入沙箱模式;
增加密碼過期機制,過期後需要修改密碼,否則可能會停用,或進入沙箱模式;
提供了更為簡單SSL安全存取配置,並且預設連線就採用SSL的加密方式。
靈活性
MySQL資料庫從5.7.8版本開始,也提供了對JSON的支援。
可以混合儲存結構化資料和非結構化數據,同時擁有關聯式資料庫和非關係型資料庫的優點
能夠提供完整的事務支援
generated column引入的新交易 5.特性,所謂generated column,就是資料庫中這一列由其他欄位計算而得
易用性
在MySQL 5.7 之前,如果使用者輸入了錯誤的SQL語句,按下ctrl+c ,雖然能夠「結束」SQL語句的運行,但是,也會退出目前會話,MySQL 5.7對這違反直覺的地方進行了改進,不再退出會話。
MySQL 5.7可以explain一個正在運行的SQL,這對於DBA分析運行時間較長的語句將會非常有用。
sys schema是MySQL 5.7.7中引入的一個系統函式庫,包含了一系列視圖、函數和預存過程, 此專案專注於MySQL的易用性。
例如:如何查看資料庫中的冗餘索引;如何取得未使用的索引;如何查看使用全表掃描的SQL語句。
可用性
線上設定 複製的過濾規則 不再需要重新啟動MySQL,只需要停止SQLthread,修改完成以後,啟動SQLthread。
線上修改buffer pool的大小。
Online DDL MySQL 5.7支援重新命名索引和修改varchar的大小,這兩個動作在先前的版本中,都需要重建索引或表格。
在線開啟GTID ,在先前的版本中,由於不支援在線開啟GTID,用戶如果希望將低版本的資料庫升級到支援GTID的資料庫版本,需要先關閉資料庫,再以GTID模式啟動,所以導致升級起來特別麻煩。
性能
臨時表的性能改進。
臨時表只可見於目前會話中
臨時表的生命週期為目前連線(MySQL宕機或重開機
在初始化時如果加上--initial-insecure,則會建立空密碼的root@localhost 帳號,否則會建立帶密碼的root@localhost 帳號,密碼直接寫在log-error 日誌檔案中;新用戶登入後需要立刻修改密碼,否則無法繼續後續的工作。
以上就是Mysql5.5&Mysql5.6&Mysql5.7特性的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!