我發現a posting on the MySQL forums from 2005,但沒有比這更近的了。基於此,這是不可能的。但是3 - 4年內可以改變很多。是否有可能在MySQL中有索引視圖?
我在找的是一種在視圖上有一個索引但是讓查看的表保持未索引的方法。編制索引會傷害編寫過程,而且這個表的編寫頻率非常高(索引編制會減慢抓取的速度)。但是,這種索引的缺乏使我的查詢非常緩慢。
我發現a posting on the MySQL forums from 2005,但沒有比這更近的了。基於此,這是不可能的。但是3 - 4年內可以改變很多。是否有可能在MySQL中有索引視圖?
我在找的是一種在視圖上有一個索引但是讓查看的表保持未索引的方法。編制索引會傷害編寫過程,而且這個表的編寫頻率非常高(索引編制會減慢抓取的速度)。但是,這種索引的缺乏使我的查詢非常緩慢。
我不認爲MySQL支持物化視圖,這是你所需要的,但它在這種情況下無法幫助你。無論索引是在視圖還是在底層表上,它都需要在更新底層表的過程中在某個時刻寫入和更新,因此它仍然會導致寫入速度問題。
最好的辦法可能是創建一個定期更新的彙總表。
謝謝。我在物化視圖上做了一些更多的搜索,看起來你是正確的。 – 2008-10-28 18:10:55
您是否考慮過從您的分析處理數據中提取您的交易處理數據,以便它們都可以專門滿足其獨特要求?
其基本思想是你有一個定期修改的數據版本,這將是事務處理方面,並且需要大量的規範化和輕量級索引,以便寫操作更快。數據的第二版本是爲分析處理而構建的,並且趨向於不太標準化,並且對於快速報告操作而言索引更大。
圍繞分析處理構建的數據通常圍繞數據倉庫的立方體方法進行構建,由表示立方體邊的事實表和表示立方體邊的維表組成。
這實際上是我現在正在處理的內容。我認爲。我將擁有一張表,其中包含我需要的數據,這些數據是定期更新的,並且是爲查詢建立索引的,所以我只需要每[更長的時間單位]查詢一次未索引表,以便更新索引表新數據。 – 2008-10-28 18:18:35
你只想要一個索引視圖嗎?寫入只有一個索引的表格不太可能會造成破壞性。沒有主鍵嗎?
如果每條記錄很大,您可以通過計算出如何縮短它來提高性能。或者縮短你需要的索引長度。
如果這是一個只寫表(即你不需要更新),那麼在MySQL中開始對它進行歸檔或者刪除記錄(和索引鍵)會致命,需要索引啓動從已刪除的鍵中填充(重新使用)插槽,而不僅僅追加新的索引值。違反直覺,但在這種情況下,你最好用更大的桌子。
Flexviews通過跟蹤對基礎表的更改並更新作爲物化視圖的表來支持MySQL中的物化視圖。這種方法意味着視圖支持的SQL有點受限制(因爲更改日誌記錄例程必須找出它應該跟蹤哪些表進行更改),但據我所知,這是最接近您可以在MySQL中實現的視圖。
請參閱http://stackoverflow.com/q/7922675/632951 – Pacerier 2014-10-26 02:31:48