Mysql
跳過 YZ 的 X 塊,因為 MySQL 沒有選擇索引而不是 word_sid_typeindex
我的環境:
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.8 (Santiago) # uname -a Linux A.B.C 2.6.32-642.4.2.el6.x86_64 #1 SMP Mon Aug 15 02:06:41 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux # rpm -q mysql-server percona-toolkit mysql-server-5.1.73-7.el6.x86_64 percona-toolkit-2.2.19-1.noarch #
我正在執行
pt-table-checksum
,我收到以下錯誤:跳過 YZ 的塊 X,因為 MySQL 沒有選擇索引而不是 word_sid_typeindex。
mysql> DESCRIBE search_index; +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | word | varchar(50) | NO | MUL | | | | sid | int(10) unsigned | NO | MUL | 0 | | | type | varchar(16) | YES | | NULL | | | score | float | YES | | NULL | | +-------+------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) mysql> SHOW TABLE STATUS WHERE Name='search_index'\G; *************************** 1. row *************************** Name: search_index Engine: InnoDB Version: 10 Row_format: Compact Rows: 3155432 Avg_row_length: 51 Data_length: 163250176 Max_data_length: 0 Index_length: 415514624 Data_free: 839909376 Auto_increment: NULL Create_time: 2016-09-01 21:14:58 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.13 sec) ERROR: No query specified mysql>
請指教。
該消息既令人期待又令人不安。
為什麼預期?
我一點也不覺得這條消息令人不安。我希望pt-table-checksum繞過塊,因為沒有定義的唯一性。當然,當沒有 PRIMARY KEY 或 UNIQUE INDEX 時,InnoDB 將創建一個名為 gen_clust_index 的基於行的索引。因此,從表中讀取的塊除了插入順序外,對其順序沒有押韻或理由。
為什麼令人不安?
由於您在問題上有一個複制標籤,現在這變得令人不安。
當您在主設備上進行多次寫入時,從設備可能以與主設備不同的順序寫入行。如果
search_index
表有 aPRIMARY KEY
或 aUNIQUE INDEX
,那將穩定校驗和評估。不幸的是,對於具有內部生成索引(gen_clust_index)的表作為唯一形式的唯一形式的表,這不能說是在主和從上的 InnoDB 表。解決方案
search index
在 Master 上定義 PRIMARY KEY 。- mysqldump
search_index
從 Master 載入到 Slave
這就是我的建議:
- 跑步
SHOW INDEXES FROM Y.Z\G
- 使用
--chunk-index
選項中基數最高的索引- 使用不同的雜湊函式
--function=md5
- 使用較小的
--chunk-size
(例如 200)或者,對受影響的表執行 ANALYZE TABLE 以重新計算其統計資訊。確保您了解在繁忙的伺服器上執行 ANALYZE TABLE 的影響。