鍍金池/ 問答/數(shù)據(jù)庫/ MySQL表500萬+,又不讓分表

MySQL表500萬+,又不讓分表

有一個表500萬+的數(shù)據(jù),任何超過幾萬的和它關聯(lián)都會慢的要死;又不想分表改動太大,有什么方法嗎

回答
編輯回答
淡墨

1 確保命中索引。
2 不要一次查太多數(shù)據(jù),分頁查詢。
3 換更好的機器,上SSD。

2017年12月8日 16:22
編輯回答
不討喜

改動成本(越來越大):

  • 優(yōu)化SQL,使用索引,最好是索引全覆蓋

  • 使用MySQL分區(qū)表,不要索引,確保查詢帶分區(qū)字段,保證查詢MySQL掃描的分區(qū)表數(shù)量很小

  • 將關聯(lián)數(shù)據(jù)放到redis等緩存中查詢

  • 使用分表分庫,這個時候數(shù)據(jù)庫結構和代碼都得跟著調整了

按你的情況,我認為使用第二種就夠了,改動非常小。

2018年1月23日 07:35