本文介紹了如何使用SHOW COLUMNAR STATUS
語句查看當前庫下的列存資料量情況。
注意事項
執行個體版本需為5.4.19-16989811及以上。
文法
SHOW COLUMNAR STATUS
樣本
SHOW COLUMNAR STATUS;
+---------------------+-------------+------------+--------------------+------+-------+-----------+-----------+-----------+------------+
| TSO | SCHEMA_NAME | TABLE_NAME | INDEX_NAME | ID | ROWS | CSV_FILES | ORC_FILES | DEL_FILES | FILES_SIZE |
+---------------------+-------------+------------+--------------------+------+-------+-----------+-----------+-----------+------------+
| 7127209598129274944 | xxx_db | sbtest1 | s1_col_index_$b243 | 1447 | 10 | 4 | 0 | 0 | 580 |
| 7127209598129274944 | xxx_db | sbtest2 | s2_col_index_$a378 | 1469 | 81910 | 1 | 1 | 1 | 3565100 |
+---------------------+-------------+------------+--------------------+------+-------+-----------+-----------+-----------+------------+
返回結果說明:
列名 | 說明 |
TSO | 列存索引最新一次提交的TSO。 |
SCHEMA_NAME | 庫名。 |
TABLE_NAME | 表名。 |
INDEX_NAME | 列存索引名。 |
ID | 列存索引的唯一標識。 |
ROWS | 通過檔案統計的列存索引內的行數。 |
CSV_FILES | 追加寫檔案的個數。 |
ORC_FILES | ORC檔案(列存隱藏檔)的個數。 |
DEL_FILES | 儲存刪除行標記資料的檔案個數。 |
FILES_SIZE | 所有檔案長度的總和,單位:B。 |
TSO代表列存最新一次提交的TSO,然後統計截止到該TSO,該庫下的所有列存索引表的統計資訊,可以理解每一個TSO就是一個快照版本,依次遞增。
只有建立成功的列存索引才會顯示統計資訊,正在建立過程中的列存索引不會顯示。
常見問題
為什麼各種檔案個數會變化? 答:列存包含compaction操作來保證檔案的資料以排序鍵進行排序,例如將追加寫檔案轉成ORC檔案、ORC檔案間進行範圍排序等。
一段時間沒有更新資料,CSV_FILES追加寫的檔案個數為什麼不為0? 答:CSV_FILES追加寫檔案達到一定閾值條件才會觸發compaction轉成列式隱藏檔,根據分區劃分資料,每個分區可能會保留一個檔案,同時該類檔案的個數還取決於後台compaction的速度。
ID列的作用? 答:使用者無需關心ID列,它只是對應每一個列存索引的唯一標識,具有全域唯一性,用於列存核心區分列存索引,解決列存索引名稱相同,刪除列存索引再建相同列存索引等問題,列存索引刪除再建時儘管名稱相同,唯一標識ID會不同。
列存索引的ROWS行數與主表select count(*)結果不相等嗎? 答:首先觀察列存索引是否已同步到最新Binlog位點,可通過SHOW COLUMNAR OFFSET查看列存索引同步位點。如果同步到最新位點,但是列存索引行數與主表不一致,請聯絡我們。