您好,登錄后才能下訂單哦!
本文主要給大家簡單講講百萬數據量mysql的測試環境講析,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔百萬數據量mysql的測試環境講析主題吧,希望可以給大家帶來一些實際幫助。
測試環境
數據總數 300萬條 占用磁盤空間 1G 左右
數據結構
表1 news [ 文章表 引擎 myisam 字符集 utf-8 ] ----------------------------------------------------- idint11主鍵自動增加 cateint11索引 titlevarchar200標題(便于基礎搜索做了索引) contenttext文章正文 dateint11文章發布時間(時間戳形式)
表2 cate [ 文章分類表 引擎 myisam 字符集 utf-8 ] ----------------------------------------------------- cate_idint11主鍵自動增加 cate_namevarchar200文章標題
查詢總數
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 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行。
MyISAM只要簡單的讀出保存好的行數即可。
注意的是,當count(*)語句包含 where條件時,兩種表的操作有些不同,InnoDB類型的表用count(*)或者count(主鍵),加上where col 條件。其中col列是表的主鍵之外的其他具有唯一約束索引的列。這樣查詢時速度會很快。就是可以避免全表掃描。
總結
mysql 在300萬條數據(myisam引擎)情況下使用 count(*) 進行數據總數查詢包含條件(正確設置索引)運行時間正常。對于經常進行讀取的數據我們建議使用myIsam引擎。
百萬數據量mysql的測試環境講析就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。