當前位置:歷史故事大全網 - 歷史故事 - MySQL-分區表

MySQL-分區表

底層表的封裝意味著索引也是根據分區的子表定義的,沒有全局索引。(所以即使有唯壹索引,不同子表中也可能有重復數據。)

當單個表數據太大時,索引無效。

把單個表分成幾個區域,通過分區函數,可以快速定位數據區域。而且與索引相比,分區不需要額外的數據結構來記錄每個分區的數據,成本更低。只需要壹個簡單的表達式來指向正確的分區。

?妳可以用簡單的分區方式存儲表,不需要任何索引。只要將查詢定位到所需的大致數據位置,並通過where條件將所需數據限制在幾個分區內,效率就非常高。警告:查詢需要掃描的分區數量被限制在壹個非常小的數目。

?如果數據有明顯的“熱點”,可以將熱點數據放在單獨的分區中,這樣這個分區中的數據就可以緩存在內存中。

?如果分區表達式的值可以為空:則第壹個分區將創建壹個特殊的分區。以按範圍年(order_date)分區為例,order _ date列中所有值為空或非法的數據都將放入第壹個分區中。那麽所有查詢將在定位分區後掃描第壹個分區。而如果第壹個分區非常大,那麽查詢成本就會被這個“拖瓶”分區無情地增加。

?創建壹個無用的第壹分區可以解決這個問題,分區p _ nulls值小於(0);

?對於分區列和索引列不匹配的查詢,該查詢雖然可以使用索引,但無法通過分區定位目標數據的分區(即數據分布相對分散),需要遍歷每個分區中的索引,除非查詢中的條件也包含分區條件。因此,分區條件的範圍有望包含在流行的查詢索引中。

?對於範圍分區技術,需要適當限制分區數量,否則對於批量導入大量數據的場景,選擇分區的成本太高。對於大多數系統,大約100個分區不成問題。

  • 上一篇:歷史文化差異對翻譯的影響
  • 下一篇:制作了多少部“機動奧特曼”電影?妳最喜歡哪壹個?
  • copyright 2024歷史故事大全網