mysql按月磁區:
PARTITION s201612 VALUES LESS THAN (TO_DAYS('2017-01-01 ')),
PARTITION s201701 VALUES LESS THAN (TO_DAYS('2017-02-01')),
PARTITION s201702 VALUES LESS THAN (TO_DAYS('2017-03-01 ')),
PARTITION s201703 VALUES LESS THAN (TO_DAYS('2017-04-01 ')),
PARTITION s201704 VALUES LESS THAN (TO_DAYS('2017-05-01 ')),
PARTITION s201705 VALUES LESS THAN (TO_DAYS('2017-06-01 ')),
PARTITION s201706 VALUES LESS THAN (TO_DAYS('2017-07-01')),
PARTITION s201707 VALUES LESS THAN (TO_DAYS('2017-08-01')),
PARTITION s201708 VALUES LESS THAN (TO_DAYS('2017-09-01')),
PARTITION s201709 VALUES LESS THAN (TO_DAYS('2017-10-01')),
PARTITION s201710 VALUES LESS THAN (TO_DAYS('2017-11-01')),
PARTITION s201711 VALUES LESS THAN (TO_DAYS('2017-12-01')),
PARTITION s201712 VALUES LESS THAN (TO_DAYS('2018-01-01')),
PARTITION p2 VALUES LESS THAN MAXVALUE
通過 INFORMATION_SCHEMA.partitions 表查詢磁區的資料行數,查到s201701行數65條,
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM
INFORMATION_SCHEMA.partitions
WHERE
TABLE_SCHEMA = schema()
AND TABLE_NAME='table_ym';
實際上一月份的資料有77條,洗掉s2017這個磁區,發現一月份的資料已經全部洗掉。如何讓查詢表磁區的資料條數和實際的資料條數一致?ps:發現12條差距剛好是2017年1月1日這天的資料。
uj5u.com熱心網友回復:
查看mysql官方檔案,發現 INFORMATION_SCHEMA.partitions的TABLE_ROWS欄位其實提供的就是一個大概數值。附上官方檔案說明TABLE_ROWS: The number of table rows in the partition.
For partitioned InnoDB tables, the row count given in the TABLE_ROWS column is only an estimated value used in SQL optimization, and may not always be exact.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/100804.html
標籤:基礎和管理
