查詢INFORMATION_SCHEMA.STATISTICS索引名稱時發現一些奇怪的結果。當我做「SELECT * ...」時,我看到2個索引,但是「SELECT COUNT(*)...」表示count(*)是0.任何人都知道爲什麼?有沒有更好的方法來獲取表上的索引,理想情況下不是MySQL特定的?當從INFORMATION_SCHEMA.STATISTICS讀取表索引時,MySQL行計數不正確
例子:
mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE
table_schema = 'mifostest' AND table_name ='CUSTOMER' AND INDEX_NAME =
'CUSTOMER_BRANCH_SEARCH_IDX';
+----------+
| COUNT(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
但是......
mysql> SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema =
'mifostest' AND table_name ='CUSTOMER' AND INDEX_NAME =
'CUSTOMER_BRANCH_SEARCH_IDX'\G
*************************** 1. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: mifostest
TABLE_NAME: CUSTOMER
NON_UNIQUE: 1
INDEX_SCHEMA: mifostest
INDEX_NAME: CUSTOMER_BRANCH_SEARCH_IDX
SEQ_IN_INDEX: 1
COLUMN_NAME: BRANCH_ID
COLLATION: A
CARDINALITY: 0
SUB_PART: NULL
PACKED: NULL
NULLABLE: YES
INDEX_TYPE: BTREE
COMMENT:
*************************** 2. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: mifostest
TABLE_NAME: CUSTOMER
NON_UNIQUE: 1
INDEX_SCHEMA: mifostest
INDEX_NAME: CUSTOMER_BRANCH_SEARCH_IDX
SEQ_IN_INDEX: 2
COLUMN_NAME: SEARCH_ID
COLLATION: A
CARDINALITY: 0
SUB_PART: NULL
PACKED: NULL
NULLABLE: YES
INDEX_TYPE: BTREE
COMMENT:
2 rows in set (0.00 sec)
的更多信息:
- 我使用MySQL 5.1.31-1ubuntu2在Ubuntu 9.04。
- 「SHOW CREATE TABLE」確實顯示索引。
謝謝! -Adam
我無法在5.0.45或5.0.51中複製它。史蒂夫的答案可能是正確的,你可能最好把它作爲一個錯誤提交給MySQL開發人員。 – Randy 2009-08-21 18:38:07