大家好
 
摸資料庫這麼多年
我始終是個新手
 
有時候寫程式就是這樣
為了符合老闆或是客戶需求
先求有 再求好
 
往往有時候系統就是會設計不良
 
等資料越來越大的時候
程式就越來越慢
 
通常PHP網站會慢
很大一部分跟MYSQL查詢很久有關係
 
所以
假設用 mysql explain 都有使用 index 的時候還是很慢
就要看看是不是因為資料量太大造成緩慢了
 
 
例如我以前有張表這樣設計
id (int) : 使用者ID
name (varchar(100)) : 名稱
jsonTxt (text) : 放置使用者一些非固定欄位的資料.故使用 json 格式
 
一開始還好
但是等到資料破萬的時候就會發現查詢越來越慢
發現是因為每一次查詢即使有 index
但是因為這張表太肥大
而無法使用 index 且每次暫存 query 都要很久
詳細原因我沒有深究
但是發現只要有用到 order by 排序幾乎都會有這問題
但是我只可能用 id 或是 name 排序啊?
 
但是發現即使沒用來排序的資料
也會拖慢排序的速度
 
所以結論:
 
設計資料表的時候
如果有TEXT 或是大資料欄位時,應獨立一張表來儲存,要用的時候再join即可
會用來排序的表單應盡量精簡
 
 
MYSQL中 排序 對於大資料真是頭痛的問題...
也許這個心得不一定有幫助
但是也給大家參考參考囉
感恩