Я вижу некоторые странные результаты при запросе INFORMATION_SCHEMA.STATISTICS для имен индексов. Когда я делаю «SELECT * ...», я вижу 2 индекса, но «SELECT COUNT (*) ...» говорит, что count (*) равен 0. Кто-нибудь знает почему? Есть ли лучший способ получить индексы для таблицы, в идеале не специфичные для 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