Mysql

具有 TEXT 列的大表的最佳分區技術是什麼?

  • August 23, 2021

MySQL:對於具有列類型的大型 InnoDB 表(大約 150 萬行),最好的分區技術是什麼TEXT

列上有一個FULLTEXT索引TEXT,這對我的搜尋操作非常重要。

您不能使用全文索引對 InnoDB 表進行分區,這具有直覺意義,因為很難想像全文搜尋(可能會實現為)多個底層全文索引(每個分區一個)將能夠給出有意義的相關性和查詢擴展結果。

InnoDB 分區表不支持全文搜尋 (FTS) 和外鍵。有關更多資訊,請參閱第 12.9.5 節,“全文限制”和第 18.6.2 節,“與儲存引擎相關的分區限制”。

http://dev.mysql.com/doc/refman/5.6/en/online-ddl-partitioning.html

該限制適用於所有儲存引擎。

http://dev.mysql.com/doc/refman/5.6/en/fulltext-restrictions.html http://dev.mysql.com/doc/refman/5.6/en/partitioning-limitations-storage-engines.html

如果您的搜尋也始終使用時間範圍或 id 範圍

那麼您實際上可以通過應用程式碼進行軟分區。

例如,具有相同結構但名稱如 data2001、data2002、data2003 的表

並通過您的應用程序動態選擇相應的表格。

這也可以幫助您更輕鬆地擴展。缺點是您可能會遇到更大的 FTS 索引大小。

引用自:https://dba.stackexchange.com/questions/57937