溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

百萬數(shù)據(jù)量mysql的測試環(huán)境講析

發(fā)布時間:2020-04-30 11:44:22 來源:億速云 閱讀:234 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡單講講百萬數(shù)據(jù)量mysql的測試環(huán)境講析,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔百萬數(shù)據(jù)量mysql的測試環(huán)境講析主題,希望可以給大家?guī)硪恍?shí)際幫助。                                                            

測試環(huán)境

數(shù)據(jù)總數(shù) 300萬條 占用磁盤空間 1G 左右

數(shù)據(jù)結(jié)構(gòu)

表1 news [ 文章表 引擎 myisam 字符集 utf-8 ]
-----------------------------------------------------
idint11主鍵自動增加
cateint11索引
titlevarchar200標(biāo)題(便于基礎(chǔ)搜索做了索引)
contenttext文章正文
dateint11文章發(fā)布時間(時間戳形式)
表2 cate [ 文章分類表 引擎 myisam 字符集 utf-8 ]
-----------------------------------------------------
cate_idint11主鍵自動增加
cate_namevarchar200文章標(biāo)題

查詢總數(shù)

百萬數(shù)據(jù)量mysql的測試環(huán)境講析

myIsam 引擎下
select count(*) as total from news
//耗時 0.001秒 極快 
//帶上條件
select count(*) as total from news where cate = 1
耗時 0.046秒 可以接受的速度
innodb 引擎下
select count(*) as total from news
//耗時 0.7秒 很慢
select count(*) as total from news where cate = 1
耗時 0.7秒 很慢

為什么2種引擎查詢速度相差這么大?

InnoDB 中不保存表的具體行數(shù),也就是說,執(zhí)行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行。

MyISAM只要簡單的讀出保存好的行數(shù)即可。

注意的是,當(dāng)count(*)語句包含 where條件時,兩種表的操作有些不同,InnoDB類型的表用count(*)或者count(主鍵),加上where col 條件。其中col列是表的主鍵之外的其他具有唯一約束索引的列。這樣查詢時速度會很快。就是可以避免全表掃描。

總結(jié)

mysql 在300萬條數(shù)據(jù)(myisam引擎)情況下使用 count(*) 進(jìn)行數(shù)據(jù)總數(shù)查詢包含條件(正確設(shè)置索引)運(yùn)行時間正常。對于經(jīng)常進(jìn)行讀取的數(shù)據(jù)我們建議使用myIsam引擎。

百萬數(shù)據(jù)量mysql的測試環(huán)境講析就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI