基本上我正在處理一個大表(150M行),因此索引非常重要,但它基本上是一個包含幾個可搜索的不同字段的表。所以查詢列的方式可能有100種不同的變化,因此爲每種不同的變化創建索引是不現實的。MySQL:使用各種查詢索引大量列(150M行)
所以要多解釋一下:有時一列可能會出現在查詢中,有時候不會。這對於幾個不同的列是正確的。
基本上我正在處理一個大表(150M行),因此索引非常重要,但它基本上是一個包含幾個可搜索的不同字段的表。所以查詢列的方式可能有100種不同的變化,因此爲每種不同的變化創建索引是不現實的。MySQL:使用各種查詢索引大量列(150M行)
所以要多解釋一下:有時一列可能會出現在查詢中,有時候不會。這對於幾個不同的列是正確的。
只有解決方案几乎是每個表一個索引,然後讓優化器對它進行排序(即決定使用哪個索引)。什麼數據庫,什麼是你的「相當大的表」? 1億行? 10億行?
無論表格有多複雜,對於大多數查詢,可能有幾個關鍵列幾乎總是在您的查詢中使用。只需索引那些。行掃描是不可避免的,它聽起來像,但如果你已經索引了關鍵列,MySQL足夠聰明地使用索引來縮小潛在的行以自動掃描。
對不起....從另一個MySQL論壇複製標題,所以沒有提到它....已經更新了標題。 至於數據庫大小....做一些連接,但唯一的大的是約150M行。 – Brett 2010-03-11 15:21:55