• sql添加索引


    1.基础使用

    1.普通索引 添加INDEX
    ALTER TABLE table_name ADD INDEX index_name ( column )
    
    下面演示下给user表的name字段添加一个索引
    
    2.主键索引 添加PRIMARY KEY
    ALTER TABLE table_name ADD PRIMARY KEY ( column )
    
    3.唯一索引 添加UNIQUE
    ALTER TABLE table_name ADD UNIQUE ( column )
    
    4.全文索引 添加FULLTEXT
    ALTER TABLE table_name ADD FULLTEXT ( column)
    
    5.如何添加多列索引
    ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    索引是数据库中用于提高查询效率的重要工具。MySQL的索引类型包括B-tree索引、哈希索引、全文索引等。在实际使用中,我们经常需要增加索引来优化查询性能。MySQL提供了CREATE INDEX和ALTER TABLE两种SQL语句来增加索引。

    2.1 CREATE INDEX
    CREATE INDEX语句用于在已有的表中增加索引。它的语法如下:

    CREATE [UNIQUE] [INDEX|KEY] index_name
        USING index_type(column_name[(length)]) [ASC|DESC];
    
    • 1
    • 2
    UNIQUE关键字用于指定索引是否唯一。如果不指定该关键字,则索引可以包含重复的值。
    INDEXKEY关键字用于指定索引的类型。常用的索引类型有B-tree索引、哈希索引、全文索引等。
    index_name是索引的名称。
    index_type是索引的类型。
    column_name是要建立索引的列名,可以指定多个列名。
    length是可选的参数,用于指定索引字段的长度。
    ASCDESC关键字用于指定索引的排序方式,默认为ASC
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    下面是一个使用CREATE INDEX语句增加B-tree索引的例子:

    CREATE INDEX idx_name ON table_name (column_name);
    
    • 1

    2.2 ALTER TABLE
    ALTER TABLE语句用于在已有的表中增加索引。它的语法如下:

    ALTER TABLE table_name
        ADD [UNIQUE] [INDEX|KEY] index_name
        USING index_type(column_name[(length)]) [ASC|DESC];
    
    • 1
    • 2
    • 3

    与CREATE INDEX相比,ALTER TABLE语句在增加索引的同时还可以指定要增加索引的表名。

    下面是一个使用ALTER TABLE语句增加B-tree索引的例子:

    ALTER TABLE table_name
        ADD INDEX idx_name (column_name);
    
    • 1
    • 2
    1. 增加索引的实例
      下面通过一个实例来演示如何使用MySQL的SQL语句增加索引。

    假设我们有一个名为users的表,其中包含了用户的信息。我们想要根据用户的年龄来进行快速查找,因此可以为users表的age列增加索引。

    首先,我们可以使用CREATE INDEX语句来增加索引:

    CREATE INDEX idx_age ON users (age);
    
    • 1

    如果我们已经创建了users表,可以使用ALTER TABLE语句来增加索引:

    ALTER TABLE users
    ADD INDEX idx_age (age);

    增加索引后,我们可以使用EXPLAIN语句来查看查询的执行计划。例如,我们可以查看使用索引后查询年龄小于30的用户的执行计划:

    EXPLAIN SELECT * FROM users WHERE age < 30;
    
    • 1
    1. 注意事项
      在增加索引时,需要注意以下几点:

    增加索引会增加磁盘空间的使用。因此,不要盲目地为所有列都增加索引,而是根据实际需求选择增加索引的列。
    索引不适用于所有类型的查询。对于一些频繁更新的列,增加索引可能会降低性能,因为更新索引需要耗费额外的时间。
    当增加索引后,数据库在插入、更新和删除数据时需要维护索引,因此可能会导致写入操作变慢。因此,需要权衡索引的读写性能,根据实际情况进行调整。

  • 相关阅读:
    【Spring boot】整合tomcat底层原理
    C#中List、Dictionary、HashSet用法以及区别
    数据结构——线性表
    从OWASP API Security TOP 10谈API安全
    【TFS-CLUB社区 第5期赠书活动】〖Python OpenCV从入门到精通〗等你来拿,参与评论,即可有机获得
    探索操作系统:内核、启动和系统调用的奥秘
    父进程循环创建三个子进程, 并用sigchld完成对子进程的回收
    JavaScript作用域的用法
    java&springboot&mysql学生社团管理系统26281-计算机毕业设计项目选题推荐(附源码)
    国产蓝牙耳机哪个牌子好?国产蓝牙耳机质量排行榜
  • 原文地址:https://blog.csdn.net/weixin_45817985/article/details/134523268