2012-03-12 103 views
1

「我應該使用多少個索引?」我知道這個問題多次被問到一般是。但我要求一個特定於我的表格結構和查詢目的的答案。MySQL索引 - 可選搜索條件

我有一個約60列的表。我正在編寫一個SDK,它具有基於可選搜索條件獲取數據的功能。有10個列,其中用戶可以可選地傳入值(因此用戶可能想要某個usernameclientTimestamp的所有條目,或某個userID等的所有條目)。因此,我們可能會根據最多10列查找數據。

該表將運行INSERTS幾乎與SELECTS一樣多,並且該表通常具有約200-300K行的某處。每行包含大量數據(可能接近0.5 MB)。

這張桌子上有10個索引是好的還是壞主意?

回答

0

簡單的指南,可以幫助您做出決定。 1.索引列具有高選擇性。
2.嘗試對錶格進行標準化(您提到了用戶名和用戶ID列;如果它不是用戶表,則不需要在此存儲名稱)
3.如果您的系統不是抽象的,它應該是一些使用的參數比其他人更頻繁。首先,確保您的索引支持使用這些參數進行快速結果檢索。

+0

幾乎我在想什麼......做出一個有教養的猜測,最常用的是什麼。至於表格的規範化,我知道你的意思和同意,但這是一個不同的場景。當填充「用戶名」時,它用於「離線用戶」(這意味着在用戶表中不存在任何記錄),而當填充「用戶ID」時,用於「在線用戶」(指的是「在線用戶」 '用戶表')。 – Travesty3 2012-03-12 14:17:23