84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
mysql 5.6以後,innodb和myisam 哪個查詢資料比較快。能不能給個證明。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
親測(MySQL 版本 5.7.18),分別對 60W、1W 筆記錄進行測試有索引情況 MyISAM 比 Innodb 查詢快,相差微小無索引情況 MyISAM 比 Innodb 查詢快,查詢速度相差在 1 倍左右
大量的查詢,而很少修改(insert update delete) ==> MyISAM
全文搜尋支持,且MySQL版本小於5.5 ==> MyISAM
其他情況,請使用innodb
題外話:大部分人都很懶,包括我,估計沒有多少「雷鋒」會花時間去給你證明一個網路上有很多結論的東西。 你應該自己搜尋一下相關的話題,我相信你能找出一大堆別人做過的比較。如果你對那些結論還是持懷疑態度,可以自己動手去研究,畢竟網路上別人做過的比較有可能是比較老的mysql版本。你可以自己搞benchmark測試,如果你問怎麼搞出一個有說服力的benchmark,或許才是一個更好的問題。
並不能直接了當的說哪個更快,更需要根據業務邏輯來看,不過值得一提的是在網上有一個誤區,很多人都認為查詢起來myisam一定要比innodb快,的确,当我们在对整个表不加以任何条件进行查询统计时,myisam的确要快一些,这是因为myisam在插入数据的时候会更新表的数据,当我们查询的时候,直接走的统计数量但是,一旦当我们给sql语句加入条件时,innodb并不一定会比myisam慢,因为此时都是走的磁盘或索引,即使是面对第一种情况,我们也可以用一个总数跟进表来统计总数,所以,一般没有特殊情况的话,建议InnoDB.
myisam
innodb
sql
磁盘
索引
总数跟进表
InnoDB
但分析兩個引擎情況下,MYISAM要比INNODB快,因為INNODB在做SELECT的時候,要維護的東西比MYISAM引擎多很多:1.INNODB,INNODB要緩存,MYISAM只緩存索引塊,這中間還有換進換出的減少。 2.INNODB尋址要映射到區塊,再到行,MYISAM記錄的直接是檔案的OFFSET,定位比INNODB快。 3.INNODB也需要維護MVCC一致;雖然你的場景沒有,但他還是需要去檢查和維護MVCC(Multi-Version Concurrency Control)多版本並發控制
親測(MySQL 版本 5.7.18),分別對 60W、1W 筆記錄進行測試
無索引情況 MyISAM 比 Innodb 查詢快,查詢速度相差在 1 倍左右🎜有索引情況 MyISAM 比 Innodb 查詢快,相差微小
無索引情況 MyISAM 比 Innodb 查詢快,查詢速度相差在 1 倍左右
大量的查詢,而很少修改(insert update delete) ==> MyISAM
全文搜尋支持,且MySQL版本小於5.5 ==> MyISAM
其他情況,請使用innodb
題外話:
大部分人都很懶,包括我,估計沒有多少「雷鋒」會花時間去給你證明一個網路上有很多結論的東西。
你應該自己搜尋一下相關的話題,我相信你能找出一大堆別人做過的比較。如果你對那些結論還是持懷疑態度,可以自己動手去研究,畢竟網路上別人做過的比較有可能是比較老的mysql版本。你可以自己搞benchmark測試,如果你問怎麼搞出一個有說服力的benchmark,或許才是一個更好的問題。
並不能直接了當的說哪個更快,更需要根據業務邏輯來看,不過值得一提的是在網上有一個誤區,很多人都認為查詢起來
myisam
一定要比innodb
快,的确,当我们在对整个表不加以任何条件进行查询统计时,myisam
的确要快一些,这是因为myisam
在插入数据的时候会更新表的数据,当我们查询的时候,直接走的统计数量但是,一旦当我们给
sql
语句加入条件时,innodb
并不一定会比myisam
慢,因为此时都是走的磁盘
或索引
,即使是面对第一种情况,我们也可以用一个总数跟进表
来统计总数,所以,一般没有特殊情况的话,建议InnoDB
.但分析兩個引擎情況下,MYISAM要比INNODB快,因為INNODB在做SELECT的時候,要維護的東西比MYISAM引擎多很多:
1.INNODB,INNODB要緩存,MYISAM只緩存索引塊,這中間還有換進換出的減少。
2.INNODB尋址要映射到區塊,再到行,MYISAM記錄的直接是檔案的OFFSET,定位比INNODB快。
3.INNODB也需要維護MVCC一致;雖然你的場景沒有,但他還是需要去檢查和維護MVCC(Multi-Version Concurrency Control)多版本並發控制