MySQL索引基础

前言    

    索引对于良好性能十分关键,尤其是表中的数据量越来越大的时候,索引对于查询性能的影响相当关键,数据量小的时候影响还不是很明显,所以理解索引,对于开发人员来说十分关键

1.什么是索引    

    索引(键'key')是存储引擎用于快速查找记录的数据结构

  •     他是作用于存储引擎层的,和server层无关

  •     他的目的是为了提高查询速度

  •     他的本质是数据结构(哈希,B+tree等)


2.索引的优缺点

  1.     优点

    1. 所有字段都可以建立索引

    2. 大大加快了数据的查询速度,减少了服务器需要扫描的数据量

    3. 将随机IO转换成顺序IO

    4. 帮助服务器避免排序和生成临时表

  2.     缺点

    1. 创建索引和维护索引要消耗额外的时间,并且随着数据量的增加,消耗时间会加长,还会涉及oneline ddl(以后会讲)问题

    2. 索引也占用存储空间,大量的索引会占用可能比数据文件更多的存储空间

    3. 索引需要动态维护,对表进行增删改的时候,会降低数据的维护

3.索引分类

    3.1按照数据结构分:有序数组,哈希表,B树,B+树,R树,FullText全文索引,GIS地理位置索引等

    3.2按照功能来分:聚簇索引,二级索引/辅助索引(单列索引,唯一索引,联合索引)

4.索引操作

    4.1创建索引

        单列索引

             alter table 表名 add index/key 索引名(字段名);

        alter table temp_100w add index inx_id (id);

        联合索引

            alter table 表名 add index/key  索引名(字段名1,字段名2);

        alter table temp_100w add index inx_test(id,name);

            注意事项:

                因为创建索引,也是修改表结构,会触发DML写锁,所以也会引发在线DLL的问题,所以尽量避免在业务繁忙期间进行操作

    4.2 查看索引

desc temp_100w;+-------------+--------------+------+-----+-------------------+-------+| Field       | Type         | Null | Key | Default           | Extra |+-------------+--------------+------+-----+-------------------+-------+| id          | int(11)      | NO   | MUL | 0                 |       || name        | varchar(100) | NO   |     | 未知              |       || age         | tinyint(10)  | NO   |     | 99                |       || sex         | int(11)      | NO   |     | 0                 |       || create_time | timestamp    | NO   |     | CURRENT_TIMESTAMP |       |+-------------+--------------+------+-----+-------------------+-------+# key 这一行代表索引

       4.3索引种类

    1.    PRI     主键索引

    2.    MUL   辅助索引

    3.    UNI    唯一索引

5.聚簇索引和辅助索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一根甜苦瓜

祝老板身体棒棒,夜夜笙歌

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值