最近看了資料庫的優化方案,還是有點困惑,請各位大佬指點迷津,謝謝了!
例如 order 表
order_id 訂單id
order_sn 訂單編號
user_id 用戶ID
supplier_id 商家ID
order_status 訂單狀態
pay_status 支付狀態
ship_status 發貨狀態
暫時列舉主要的欄位
創建索引的問題:
1、用戶看到的訂單串列, 可以根據 用戶ID_訂單狀態_支付狀態_發貨狀態創建 復合索引
2、商家看到的訂單串列 可以根據 商家ID_訂單狀態_支付狀態_發貨狀態創建 復合索引
如果還有其他的情況,是不是還要繼續創建各種的復合索引(比如:公司后臺要統計查看所有的訂單串列情況等)?
請大神們指點下, 謝謝了
uj5u.com熱心網友回復:
索引是建立在使用的基礎上的。哪個欄位查詢一定會用到,至少使用頻率高一些,要建索引,如果是復合索引,使用頻率高的欄位放在前邊。
使用頻率相同的欄位,差異性大的欄位,放在前邊。
uj5u.com熱心網友回復:
如樓上所說,不要為了建索引而建索引,如果資料沒有很大(50萬以上),并不需要建索引,如今的磁盤讀寫速度不慢,樓主可以參考下面文章
https://www.cnblogs.com/Aiapple/p/5693239.html
uj5u.com熱心網友回復:
就比如我說的那個題,用戶看到的訂單串列,建一套符合索引,商家這一套訂單串列,建一套復合索引, 這樣合理嗎?(這里還只是正常的各個狀態下的串列,沒有涉及到搜索)
uj5u.com熱心網友回復:
應該沒有問題,索引建幾套,怎么建,都是根據查詢條件創建的。通常一個表,2到3個索引是正常的,及特殊的,也不要超過5個。
索引太多,會影響添刪改的速度。
您說的搜索,指什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/65353.html
標籤:MySQL
上一篇:一個備份需求,勞煩各位留意一下
