mysql5.6.19下子查詢?yōu)槭裁礋o法使用索引
表結(jié)構(gòu)很簡單
CREATE TABLE `oplogs` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `kind` varchar(45) NOT NULL DEFAULT '', `op` varchar(100) NOT NULL, `user` varchar(25) NOT NULL DEFAULT '', `ip` varchar(16) NOT NULL DEFAULT '', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=34896 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
結(jié)果有34895條
sql查詢語句為:
SELECT a.id,a.kind,a.op,a.user,a.ip,a.updatetime FROM oplogs as a inner join(select id from oplogs where 1 order by id desc limit 0,20) as b using(id)
在5.6.19情況下
用php讀取內(nèi)容并顯示
首次顯示結(jié)果需要3.5秒
但是同樣的配置
在linux 下 5.5.38下
只需要0.7秒左右
很奇怪的情況
然后在5.6下執(zhí)行了explain 結(jié)果如下:
而同樣的數(shù)據(jù) explain 結(jié)構(gòu)如下:
比較結(jié)果很明顯 主要在于對oplogs進(jìn)行排序時,rows行變化太大了,一個進(jìn)行了完整的遍歷,第一個使用了索引,造成差距過大,不過原因尚未找到,有哪位知道呢?
相關(guān)文章
在CMD中操作mysql數(shù)據(jù)庫出現(xiàn)中文亂碼解決方案
有說將cmd字符編碼用chcp命令改為65001(utf8字符編碼),可這樣之后根本無法輸入中文,查詢出的中問結(jié)果依舊亂碼 。下面小編給大家?guī)砹嗽贑MD中操作mysql數(shù)據(jù)庫出現(xiàn)中文亂碼解決方案,一起看看吧2017-09-09VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南
鑒于MySQL數(shù)據(jù)庫的流行與強(qiáng)大,決定多學(xué)習(xí)使用,下面這篇文章主要給大家介紹了關(guān)于VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Mysql連接無效(invalid connection)問題及解決
這篇文章主要介紹了Mysql連接無效(invalid connection)問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02