《MYSQL教程mysql5.6.19下子查詢?yōu)槭裁礋o法使用索引》要點(diǎn):
本文介紹了MYSQL教程mysql5.6.19下子查詢?yōu)槭裁礋o法使用索引,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
表結(jié)構(gòu)很簡單MYSQL數(shù)據(jù)庫
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條MYSQL數(shù)據(jù)庫
sql查詢語句為:MYSQL數(shù)據(jù)庫
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情況下MYSQL數(shù)據(jù)庫
用php讀取內(nèi)容并顯示MYSQL數(shù)據(jù)庫
首次顯示結(jié)果需要3.5秒MYSQL數(shù)據(jù)庫
但是同樣的配置MYSQL數(shù)據(jù)庫
在linux 下 5.5.38下MYSQL數(shù)據(jù)庫
只需要0.7秒左右MYSQL數(shù)據(jù)庫
很奇怪的情況MYSQL數(shù)據(jù)庫
然后在5.6下執(zhí)行了explain 結(jié)果如下:MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
而同樣的數(shù)據(jù) explain 結(jié)構(gòu)如下:MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
比較結(jié)果很明顯 主要在于對(duì)oplogs進(jìn)行排序時(shí),rows行變化太大了,一個(gè)進(jìn)行了完整的遍歷,第一個(gè)使用了索引,造成差距過大,不過原因尚未找到,有哪位知道呢?MYSQL數(shù)據(jù)庫
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/3622.html