首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL表中显示索引

在MySQL表中显示索引
EN

Stack Overflow用户
提问于 2010-07-08 09:54:38
回答 3查看 7.6K关注 0票数 1

如果我在两个字段上定义了一个MySQL索引,如何找出哪两个属于一起(使用MySQL命令)。

下面是一个示例表:

代码语言:javascript
复制
mysql> DESCRIBE lansuite_wiki_versions;
+-----------+-----------------------+------+-----+-------------------+-----------------------------+
| Field     | Type                  | Null | Key | Default           | Extra                       |
+-----------+-----------------------+------+-----+-------------------+-----------------------------+
| versionid | int(11)               | NO   | PRI | 0                 |                             |
| postid    | int(11)               | NO   | PRI | 0                 |                             |
| date      | timestamp             | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| userid    | mediumint(8) unsigned | NO   | MUL | 0                 |                             |
| text      | text                  | NO   | MUL | NULL              |                             |
| test1     | int(11)               | NO   | MUL | NULL              |                             |
| test2     | int(11)               | NO   |     | NULL              |                             |
+-----------+-----------------------+------+-----+-------------------+-----------------------------+
7 rows in set (0.00 sec)

该表定义了以下索引:

  • userid

  • test1 + test2

  • text

+

  • versionid

我知道这一点,因为我已经分配了它们,并在phpmyadmin中看到它们。但我也想在我的申请中看到这一点。所以我找到了这个mySQL命令:

代码语言:javascript
复制
mysql> SHOW INDEX FROM lansuite_wiki_versions;
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table                  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| lansuite_wiki_versions |          0 | PRIMARY  |            1 | versionid   | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| lansuite_wiki_versions |          0 | PRIMARY  |            2 | postid      | A         |         144 |     NULL | NULL   |      | BTREE      |         |
| lansuite_wiki_versions |          1 | userid   |            1 | userid      | A         |           4 |     NULL | NULL   |      | BTREE      |         |
| lansuite_wiki_versions |          1 | test     |            1 | test1       | A         |           1 |     NULL | NULL   |      | BTREE      |         |
| lansuite_wiki_versions |          1 | test     |            2 | test2       | A         |           1 |     NULL | NULL   |      | BTREE      |         |
| lansuite_wiki_versions |          1 | text     |            1 | text        | NULL      |           1 |     NULL | NULL   |      | FULLTEXT   |         |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
6 rows in set (0.00 sec)

但是我如何看到versionid + postid是相互关联的呢?我能看到Seq_in_index在数数。所以,我是否可以依赖于这个版本和postid形成一个公共索引,仅仅因为它们在这个输出和Seq_in_index计数中是站在一起的?或者还有其他命令,显示定义了哪些索引?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-08 09:58:20

对于每个索引,Key_name都是唯一的;作为同一索引一部分的列将在此表中具有相同的名称。

seq_in_index给出了序列。

如果您查看包含索引的INFORMATION_SCHEMA表(查看文档),可能会更有意义。

我假设您正在编写一个以编程方式检查数据库结构的工具。

如果您是人,并且希望看到表结构,我建议您改用“显示创建表”。

票数 3
EN

Stack Overflow用户

发布于 2010-07-08 09:58:05

键名列显示正在描述的索引。索引中的序列显示列在该索引中的顺序。因此,在您的示例中,您在versionid和postid上有一个主键,在userid上有一个非唯一键userid,在test1和test2上有一个非唯一键测试,等等。

票数 1
EN

Stack Overflow用户

发布于 2018-08-31 14:42:31

您不应该信任查询SHOW INDEX FROM table,有时它会丢失一个或多个索引。我更喜欢:

代码语言:javascript
复制
SELECT DISTINCT
INDEX_NAME  
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'DBNAME' and TABLE_NAME='TABLE';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3202424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档