Mysql
具有 TEXT 列的大表的最佳分區技術是什麼?
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 索引大小。