MySQL從MyISAM引擎轉換到InnoDB引擎需要注意的地方_MySQL教程
推薦:MySQL安全配置詳解1. 前言 Mysql數據庫安全配置、或者叫加固屬于風險模型中的一環,它需要安全人員在理論和實踐的學習中不斷發現新的問題,并針對這些問題對數據的各個方面的配置進行強化。本文試圖圍繞著數據庫風險識別、數據庫安全加固這個問題,探討可以采取的措施來最大程度的保證我
分析 當了解完兩種引擎的不同之處,很輕松的就能知道有哪些關鍵點了。
總的來說,從MyISAM轉向InnoDB的注意事項有:
1、MyISAM的主鍵索引中,可以在非第一列(非第一個字段)使用自增列,而InnoDB的主鍵索引中包含自增列時,必須在最前面;這個特性在discuz論壇中,被設計用于“搶樓”功能,因此,若有類似的業務,則無法將該表從MyISAM轉成InnoDB,需要自行變通實現(我們則是將其改到Redis中實現);
2、不帶條件頻繁統計全表總記錄數時(SELECT COUNT(*) FROM TAB),InnoDB相對較慢,而MyISAM則飛快;不過,如果是基于索引條件的統計,則二者相差不大;
3、InnoDB在5.6以前不支持全文索引,不過這個相信無所謂,沒什么人會在MySQL里直接跑全文索引,尤其是對中文的全文索引(前陣子有開發同學提需求直接被我否了),確實有需要的話,可以采用Sphinx、Lucene等其他方案實現;
4、一次性導入大量數據并且后續還要進行加工處理的,可以先導入到MyISAM引擎表中,經過一通加工處理完后,再導入InnoDB表(我曾經在業務中用此方法提高數據批量導入及處理效率);
5、InnoDB不支持LOAD TABLE FROM MASTER語法(不過應該也很少人使用吧);
從MyISAM轉成InnoDB可以享受的好處則有:
1、完整事務特性支持,以及更高的數據并發存取效率,即更高的TPS;
2、數據庫實例異常重啟后,InnoDB表能自動修復,而且速度相對更快,而MyISAM需要被觸發才能修復,且相對耗時可能多4~5倍甚至更多;
3、更高的數據讀取性能,因為InnoDB把數據及索引同時緩存在內存中,而MyISAM只緩存了索引;
4、InnoDB支持外鍵(不過在MySQL中,應該很少人用到外鍵);
兩個引擎間的重要區別詳情見下:
MyISAM引擎的特點:
1、堆組織表;
2、不支持事務;
"tn-Powered-by-XIUMI">3、數據文件和索引文件分開存儲;
"tn-Powered-by-XIUMI">4、支持全文索引;
"tn-Powered-by-XIUMI">5、主鍵索引和二級索引完全一樣都是B+樹的數據結構,只有是否唯一的區別(主鍵和唯一索引有唯一屬性,其他普通索引沒有唯一屬性。B+樹葉子節點存儲的都是指向行記錄的row pointer);
6、有特殊計數器記錄當前記錄數;
7、不支持Crash recovery;
8、索引文件很容易損壞;
InnoDB引擎的特點
1、索引組織表;
2、支持事務;
"tn-Powered-by-XIUMI">3、數據文件和索引文件存儲在同一個表空間中;
"tn-Powered-by-XIUMI">4、在5.6以前,不支持全文索引;
"tn-Powered-by-XIUMI">5、主鍵和二級索引數據結構一樣都是B+樹,但葉子節點存儲的鍵值不一樣(主鍵的葉子節點存儲整行數據,因此也稱為聚集索引;而二級索引的葉子節點存儲的是主鍵的鍵值)
5、支持Crash recovery;
6、相同數據量時,InnoDB表空間文件大小約為MyISAM引擎的1.5~2倍;
分享:MySQL中實現高性能高并發計數器方案現在有很多的項目,對計數器的實現甚是隨意,比如在實現網站文章點擊數的時候,是這么設計數據表的,如:article_id, article_name, article_content, article_author, article_view在article_view中記錄該文章的瀏覽量。詐一看似乎沒有問題。對于小站,比如本博客,就
- MySQL安全配置詳解
- MySQL中實現高性能高并發計數器方案
- 創建MySQL從庫
- mysql語句中使用like后面的%(百分號)的問題
- sqlserver數據實時同步到mysql
- EXP-00091: Exporting questionable statistics
- 由于文件組 ‘DEFAULT’ 中的磁盤空間不足,無法為數據庫 ‘TEMPDB’ 分配新頁
- sqlserver多版本查看版本號
- 如何正確查看 SQL Server 2005 版本號?
- SQL查詢語句中的bool類型字段值的寫法
- SQL Server 2005建立與服務器的連接時出錯的解決方案
- MySQL中GROUP BY的基本實現原理
- 相關鏈接:
- 教程說明:
MySQL教程-MySQL從MyISAM引擎轉換到InnoDB引擎需要注意的地方
。