2011-12-12 170 views
2

我有一個表只有兩個字段,id1和i2。兩個字段表(都是int)是否需要一個索引?

兩者都是來自其他表的ids,並且是int(10)。

我應該在這張桌子上有一個索引嗎?

編輯:我在想這個表是由兩個簡單的數據類型組成...... MySQL是否會比索引數據低效地查詢非索引數據?

有問題的表將有更多的讀取而不是寫入,並且不會經常查詢,因此索引可以很好。

+2

索引是一門藝術,因爲它是一門科學。一般來說,如果一個表的寫入次數少於讀取次數,這通常是件好事。如果一個表的行數少於20k,索引會讓你有一點點但不是很多。如果此表將用於系統中的LOTS連接並始終引用兩個列;綜合指數可以爲您提供最好的服務;真的取決於什麼樣的表現是可以接受的。如果您能夠在0.25秒的響應時間內生活,則不可能需要這種尺寸的索引。硬幣有兩面,較長的寫與較短的讀取。 – xQbert

回答

0

如果這是一個大表(即由多行組成),那麼將用作查詢一部分的列上的索引可能是一個好主意。另外,如果表格將不經常更新並且經常用作關係表,則一個或多個索引可能會顯着加速涉及表格的連接。

表中的兩列引用主鍵的事實並不排除索引的需要。考慮一個常見的連接方案涉及敘述者表,例如:

表1 JOIN RelatorTable JOIN表2

它可能是一個好主意,在該表的外鍵創建RelatorTable索引它指的是主鍵的表1。這可能會加速連接,尤其是如果RelatorTable很大。

+0

謝謝。在與一些同事交談之後,我現在知道搜索索引總是更快。但是,添加索引時,必須考慮讀/寫頻率。 –

-2

SQL數據庫中的索引非常類似於書中的索引,而不是閱讀本書的內容以找到您要查找的內容,然後使用索引,然後跳轉到確切頁面。但在你的情況下,你的表不包含數據,只是引用存儲在其他表中的數據,所以我個人並不認爲這裏需要索引。在這種情況下,id字段字段可以簡單地用作索引。

相關問題