mysql如何重建索引(mysql索引怎么建立)

mysql如何重建索引,mysql索引怎么建立

内容导航:

  • mysql如何建立索引
  • 如何利用MySQL命令创建查看重建和删除索引
  • 索引重建问题
  • mysql索引怎么重建,或者重新收集索引统计信息
  • 一、mysql如何建立索引

    我们可以通过查看索引的属性来判断创建索引的方法。查看索引的语法格式如下:SHOW INDEX FROM <表名> [ FROM
    <数据库名>]语法说明如下:<表名>:指定需要查看索引的数据表名。<数据库名>:指定需要查看索引的数据表所在的数据库,可省略。比如,SHOW INDEX
    FROM student FROM test; 语句表示查看 test 数据库中 student 数据表的索引。示例使用 SHOW INDEX
    语句查看《MySQL创建索引》一节中 tb_stu_info2 数据表的索引信息,SQL 语句和运行结果如下所示。mysql> SHOW INDEX
    FROM tb_stu_info2\G1. row Table: tb_stu_info2Non_unique: 0Key_name:
    heightSeq_in_index: 1Column_name: heightCollation: ACardinality: 0Sub_part:
    NULLPacked: NULLNull: YESIndex_type: BTREEComment:Index_comment:1 row in set
    (0.03 sec)其中各主要参数说明如下:参数 说明Table 表示创建索引的数据表名,这里是 tb_stu_info2 数据表。Non_unique
    表示该索引是否是唯一索引。若不是唯一索引,则该列的值为 1;若是唯一索引,则该列的值为 0。Key_name 表示索引的名称。Seq_in_index
    表示该列在索引中的位置,如果索引是单列的,则该列的值为 1;如果索引是组合索引,则该列的值为每列在索引定义中的顺序。Column_name
    表示定义索引的列字段。Collation 表示列以何种顺序存储在索引中。在 MySQL 中,升序显示值“A”(升序),若显示为
    NULL,则表示无分类。Cardinality
    索引中唯一值数目的估计值。基数根据被存储为整数的统计数据计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL
    使用该索引的机会就越大。Sub_part
    表示列中被编入索引的字符的数量。若列只是部分被编入索引,则该列的值为被编入索引的字符的数目;若整列被编入索引,则该列的值为 NULL。Packed
    指示关键字如何被压缩。若没有被压缩,值为 NULL。Null 用于显示索引列中是否包含 NULL。若列含有 NULL,该列的值为
    YES。若没有,则该列的值为 NO。Index_type 显示索引使用的类型和方法(BTREE、FULLTEXT、HASH、RTREE)。Comment
    显示评注。

    二、如何利用MySQL命令创建查看重建和删除索引

    第一步,创建数据库表t_tree_info,命令如下create table t_tree_info(id int(8),tno int(4),tname
    varchar(20),tdesc
    varchar(100));如下图所示:第二步,向表里插入3条数据,插入后查看表记录,如下图所示:第三步,创建数据库索引tree_name,命令如下:create
    index tree_name on t_tree_info (tname(20));如下图所示:第四步,查看数据库表索引,利用show命令show
    index from t_tree_info;如下图所示:第五步,重建索引,利用repari命令repair table t_tree_info
    quick;如下图所示:第六步,索引创建好了,在不使用该索引时,可以删除drop index tree_name on t_tree_info;如下图所示:

    三、索引重建问题

    答:从你给出的结果来看你这个表是堆表,没有创建国任何索引。所以谈不上索引重建。堆是数据的一种存储方式。堆表的数据是无固定顺序存放的。

    四、mysql索引怎么重建,或者重新收集索引统计信息

    需要重新创建索引,因为长度不同会认为是两个不同的所索引。创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE
    INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。(1)使用ALTER
    TABLE语句创建索引。语法如下:alter table table_name add index index_name (column_list)
    ;alter table table_name add unique (column_list) ;alter table table_name add
    primary key (column_list) ;其中包括普通索引、UNIQUE索引和PRIMARY
    KEY索引3种创建索引的格式,table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER
    TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。创建索引的示例如下:mysql> use tpscDatabase
    changedmysql> alter table tpsc add index shili (tpmc ) ;Query OK, 2 rows
    affected (0.08 sec)Records: 2 Duplicates: 0 Warnings: 0(2)使用CREATE
    INDEX语句对表增加索引。能够增加普通索引和UNIQUE索引两种。其格式如下:create index index_name on table_name
    (column_list) ;create unique index index_name on table_name (column_list)
    ;说明:table_name、index_name和column_list具有与ALTER
    TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。(3)删除索引。删除索引可以使用ALTER
    TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:drop index
    index_name on table_name ;alter table table_name drop index index_name ;alter
    table table_name drop primary key
    ;其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY
    KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY
    KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。删除索引的操作,如下面的代码:mysql>
    drop index shili on tpsc ;Query OK, 2 rows affected (0.08 sec)Records: 2
    Duplicates: 0 Warnings: 0该语句删除了前面创建的名称为“shili”的索引。

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/132553.html

    (0)
    robot
    上一篇 2022-08-27
    下一篇 2022-08-27

    相关推荐

    • OpenNMS是否支持对监控对象进行自定义的阈值设置和调整

      是的,OpenNMS支持对监控对象进行自定义的阈值设置和调整。用户可以根据自己的需求和偏好,对监控对象的各种参数和指标进行设置和调整,以便更好地监控和管理网络设备和系统。通过OpenNMS的灵活性和可扩展性,用户可以轻松地对监控对象的阈值进行定制化设置,以满足不同的监控需求和场景。

      2024-04-25
      0
    • 怎样在Python中嵌套结构体

      在Python中,可以通过创建类来实现嵌套结构体的功能。以下是一个示例:class Address:def __init__(self, street, city, state, zipcode):self.street = streetself.city = cityself.state = stateself.zipcode = zipcodeclass Person:def __init_

      2024-06-15
      0
    • python怎么打印字典的键值

      要打印字典的键和值,可以使用字典的items()方法来遍历字典并打印键和值。下面是一个示例代码:my_dict = {'a': 1, 'b': 2, 'c': 3}for key, value in my_dict.items():print(f'Key: {key}, Value: {value}')这段代码会输出

      2024-03-17
      0
    • SpringAOP适合所有项目吗

      Spring AOP 可以适用于大多数项目,特别是那些需要进行日志记录、事务管理、安全控制等功能的项目。然而,并不是所有项目都适合使用 Spring AOP。对于一些轻量级或小型项目,可能并不需要引入 AOP 的复杂性。另外,对于一些对性能要求非常高的项目,使用 AOP 可能会带来一定的性能损耗。因此,在选择是否使用 Spring AOP 时,需要根据具体的项目需求和情况进行评估。

      2024-06-29
      0
    • Alma Linux与其他Linux发行版的比较如何

      Alma Linux与其他Linux发行版的比较可以在以下几个方面进行:起源:Alma Linux是由CloudLinux公司开发的,是CentOS替代品之一。其他Linux发行版如Ubuntu、Fedora、Debian等都有其独立的开发团队和社区支持。长期支持:Alma Linux承诺提供长期支持,类似于CentOS。其他Linux发行版也有长期支持版本,如Ubuntu LTS版和Debia

      2024-04-25
      0
    • 什么时代设计元素表达(时代元素如何理解)

      什么时代设计元素表达,时代元素如何理解内容导航:厄尔时代经典设计元素内容有哪些什么叫做设计元素室内设计方向的做出刷屏级创意的6大哲学下吴声编程时代、尖货分子与睡眠经济一、厄尔时代经典设计元素内容有哪些平面广告设计是旨

      2022-04-29
      0