mysql 查看索引 出来的这些 列分别代表什么 有谁知道吗?

mysql 查看索引 出来的这些 列分别代表什么 有谁知道吗?,第1张

首先show index from user指显示出user这个表中的索引

table : 表的名称

Non_unique : 如果该列索引中不包括重复的值则为0 否则为1

Key_name : 索引名称,如果是主键的话 则为PRIMARY

Seq_in_index : 索引中序列的序列号,从1开始,如果是组合索引 那么按照字段在建立索引时的顺序排列 如 ('c1', 'c2', 'c3') 那么 分别为 1, 2, 3

Column_name : 列的名称

Collation : 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分序)

Cardinality : 索引中唯一值的数目的估计值,通过运行 ANALYZE TABLE or myisamchk -a 来更新,基数根据被存储为整数的统计数据来计数,所以对于小表该值没必要太过于精确,而对于大数据量的表来说,改值越大当进行联合时,MySQL使用该索引的机 会就越大。

Sub_part : 索引的长度,如果是部分被编入索引 则该值表示索引的长度 ,如果是整列被编入索引则为null,例如name_Index和school_Index 两个索引,比较一下上面两个索引创建时候的区别

Packed : 指示关键字如何被压缩。如果没有被压缩,则为NULL

Null : 如果该列的值有NULL,则是YES 否则为NO..

Index_type : 所用索引方法(BTREE, FULLTEXT, HASH, RTREE)

Commnet : 关于在其列中没有描述的索引的信息

Index_comment : 为索引创建时提供了一个注释属性的索引的任何评论

可以直接自己添加描述字段。

DROP TABLE IF EXISTS `user`

CREATE TABLE user

( idBIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT

COMMENT '主键',

username      VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户名',

username_type VARCHAR(20)         NOT NULL DEFAULT ''

COMMENT '用户类型',

user_password VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户密码',

create_time   TIMESTAMP           NOT NULL DEFAULT CURRENT_TIMESTAMP

COMMENT '创建时间',

update_time   TIMESTAMP           NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP

COMMENT '更新时间',

PRIMARY KEY (id),

UNIQUE KEY idx_urn(username) USING BTREE

)

ENGINE = InnoDB

DEFAULT CHARSET = utf8mb4

COMMENT = '用户信息表'

或者。

#创建表的时候写注释

CREATE TABLE userinfo(

id INT COMMENT '编号',

uname VARCHAR(40) COMMENT '用户名',

address VARCHAR(120) COMMENT '家庭住址',

hobby VARCHAR(200) COMMENT '爱好'

)COMMENT = '用户信息表'

#修改表的注释

ALTER TABLE userinfo COMMENT '用户信息资料表'

#修改字段的注释,注意:字段名和字段类型照写就行

ALTER TABLE userinfo MODIFY COLUMN uname VARCHAR(40) COMMENT '姓名'

#查看表注释的方法,在生成的SQL语句中看

SHOW CREATE TABLE userinfo

#在元数据的表里面看

USE information_schema

SELECT * FROM TABLES WHERE TABLE_SCHEMA='shoppingcart' AND TABLE_NAME='userinfo'

#查看字段注释的方法

SHOW FULL COLUMNS FROM userinfo

#在元数据的表里面看

SELECT * FROM COLUMNS WHERE TABLE_SCHEMA='shoppingcart' AND TABLE_NAME='userinfo'

扩展资料:

mysql查询和索引:

只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快--不管有没有使用索引。

只有当数据库里的记录超过了 1000 条、数据总量也超过了 MySQL 服务器上的内存总量时,数据库的性能测试结果才有意义。

在不确定应该在哪些数据列上创建索引的时候,人们从 EXPLAIN SELECT 命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的 SELECT 命令加一个 EXPLAIN 关键字作为前缀而已。

有了这个关键字,MySQL 将不是去执行那条 SELECT 命令,而是去对它进行分析。MySQL 将以表格的形式把查询的执行过程和用到的索引等信息列出来。

在 EXPLAIN 命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中。

效率最高的是 system,然后依次是 const、eq_ref、ref、range、index 和 All(All 的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍——这种情况往往可以用一索引来避免)。

possible_keys 数据列给出了 MySQL 在搜索数据记录时可选用的各个索引。key 数据列是 MySQL 实际选用的索引,这个索引按字节计算的长度在 key_len 数据列里给出。

比如说,对于一个 INTEGER 数据列的索引,这个字节长度将是4。如果用到了复合索引,在 key_len 数据列里还可以看到 MySQL 具体使用了它的哪些部分。作为一般规律,key_len 数据列里的值越小越好。

ref 数据列给出了关联关系中另一个数据表里的数据列的名字。row 数据列是 MySQL 在执行这个查询时预计会从这个数据表里读出的数据行的个数。row 数据列里的所有数字的乘积可以大致了解这个查询需要处理多少组合。

最后,extra 数据列提供了与 JOIN *** 作有关的更多信息,比如说,如果 MySQL 在执行这个查询时必须创建一个临时数据表,就会在 extra 列看到 usingtemporary 字样。

参考资料来源:百度百科-MySQL

mysql中有关数据库内容,描述正确的答案有以下4个:

1、Schemata表提供了所有数据库的名称信息

2、Tables表提供了关于数据库中的表的信息

3、Columns表提供了每个表的列信息

4、在MySQL库中,有个user表,记录了所有数据库用户的账号和密码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6176828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存