2012-06-12 75 views
1

我的'內容'表有大約10,000,000行。我可以添加特殊的列進行排序到mysql嗎?

我使用列'register_date'在內容列表中進行排序。 但現在我想使用'register_date'列來達到另一個目的。 所以,我即將添加新的列像'seq(bigint)'進行排序。並將索引添加到seq列。

如果添加了新行,'seq'填充了max seq值。 如果舊行需要出現列表頭,則會將「seq」值更改爲較新的最大seq值。

在這種情況下,計算最大seq值,插入,更新是昂貴的? 我不知道哪個方法好。

回答

3

如果沒有搜索到建議的seq值(例如在WHERE子句中),則根本不索引它。將未搜索的內容編入索引,但頻繁更新的結果性能較低。

只要大多數檢索結果只是表格的一小部分,SORT BY seq就可以高效地管理沒有索引的排序。最大的問題是:在什麼時候進行索引是有意義的?要回答這個問題,一些基準是必要的。

+0

謝謝。 'seq'值將用於'WHERE','ORDER BY'子句。在這種情況下,將索引和更新值添加到'seq'列是不好的方法? – gentlejo

相關問題