MySQL数据库索引

– 索引。

  1. 什么是索引:提高查询效率的一种技术

  2. 原理:根据某一列(字段)进行分段、排序,通过避免全表扫描提高查询效率、

  3. 普通索引、唯一索引
    普通索引:Mysql基本类型,字段值可以重复
    唯一索引:字段的值不能重复(可以为空)

  4. 单列索引,,组合索引
    单列索引:一个索引只包含一个字段
    组合索引:一个索引包含多个字段

  5. 聚集索引、非聚集索引
    聚集索引(cluster index):索引的键值顺序和数据顺序是一致的
    非聚集索引:索引的键值顺序和数据顺序是不一致的

  6. 如何创建索引
    -语法: index | unique | primary key
    create table index_test(
    id int primary key,
    cero_no varchar(32),
    name varchar(32),
    unique(cero_no),index(name)
    );

    查看索引:
    show index from index_test;
    insert into index_test values
    (1,‘0001’,‘Jerry’);
    insert into index_test values
    (2,‘0001’,‘Jerry’);

  7. 删除索引
    语法:drop index 索引名称 on 表名称
    示例:
    drop index cero_no on index_test;
    drop index name on index_test;

  8. 修改表的方式添加索引
    语法:create 索引类型 索引名称 on 表(字段)
    示例:
    – 在index_test表creo_no 字段创建唯一索引
    create unique index idx_cero_no
    on index_test(cero_no);
    第一步:利用现有的orders表,插入如10万笔数据
    执行insert_orders_many.py文件
    第二步:在没有索引的情况下查询,条件如下:
    orders_id = ‘2018010100000002’
    orders_id = ‘2018010100055555’
    orders_id = ‘2018010100099996’
    第三步:给orders表添加索引
    create index idx_orders_id on orders(order_id)
    在执行第二步的查询,查看执行时间
    备注:如果执行文件报错。检查连接参数
    核对字段的名称。顺序。类型
    pymysql导入出错。因为减少了pymysql模块,更换到教学机上执行

  9. 索引的优缺点
    优点
    提高查询效率
    唯一索引能够不保证数据的唯一性
    可能提高分组排序的效率
    缺点
    降低增、删、改的效率(调整索引结构的开销)
    对表中的数据进行增删改查的操作,
    需要增加额外的储存空间

  10. 索引使用注意事项
    总体原则
    在合适的字段上,建立合适的索引
    索引不能太多。过多的索引会降低增删改的效率

    适合使用索引的情况
    在经常进行查询、排序、分组的字段上建立索引
    数据分布比较均匀。连续的字段,适合建立索引
    查询操作较多的表。适合建立索引

    不适合建立索引的情况
    数据量太少的表不适合建立索引
    增删改操作较多的表。不适合建立较多的索引
    某个字段取值范围很少。不适合建立索引
    某个字段很好用作处查询。排序、分组,不适合建索引

    索引失效:表中有索引,但是表中查询的时候没有使用
    没有使用索引字段作为条件
    在条件判断中使用了<>符号
    条件判断语句中使用了null值判断
    模糊查询%前置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值