今日代码:MySQL索引

索引与事务

编程软件: MYSQL

学习总结:

  • 什么是索引?
  • 索引的作用
  • 怎么实现索引?
  • 索引的成本和收益
  • 使用场景或者使用注意事项
  • 站在用户角度,怎么使用?
  • 为什么需要事务?
  • 对于用户,怎么使用事务?

  • 什么是索引?
    索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。(具体细节在后续的数据库原理课程讲解)

  • 索引的作用:
    数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
    索引所起的作用类似书籍目录,可用于快速定位、检索数据。
    索引对于提高数据库的性能有很大的帮助

  • 索引大概怎么做到的?
    1.搜索树:
    1.通过index_name索引,找到黄蓉的信息 O(log(n))
    2.根据上一步找到的信息,直接访问硬盘上黄蓉的完整数据 O(1)
    把查询效率从O(n)提升到了O(log(n)) 100W为例 100W -> 20

  • 索引的成本:除了主数据,需要另外维护一套或者多套数据(搜索树)
    1.空间的成本(保存搜索树)
    2.数据修改时间上的成本(插入 删除 修改时),除了设计主数据,还得设计索引数据

  • 收益:索引设计到的字段进行查询,速度明显提升

  • 使用场景或者使用注意事项:
    1.数据量足够大时,在用索引(超过10W数据就可以考虑)
    2.查询频繁的字段建立索引
    3.查新的频次远远大于增删改的频次
    4.索引相关的字段不要太大

  • 站在用户角度,怎么使用?
  • ①.MySQL提供的索引有以下几类:
    1.主键primary key —通过主键查询,效率很高
    2.伪意见unique —天生带着索引
    3.普通索引index | key,没有数据约束含义,单纯为了提升查询效率
    4.全文索引,和刚才讲的原理不是一回事,支持类似搜索引擎功能使用,基本跳过
  • ②.如何创建索引 – SQL语法(了解即可)
    建表修改表是,添加索引
    create table employeess (
    id int primary key,
    name varchar(20),
    salary int,
    index (name) --创建一个索引结构,把表中的name,作为索引树的key
    );

  • 查看具体内容
  
   show index from employeess;
   --建好索引之后,直接Insert/Update/Delete即可,和平时一样,没有变化
   --MySQL内部会判断是否可以用上索引,并且选择合适的索引,提升速度
   
   show index from employeess\G

  • 为什么需要事务?
    有些场景中的一组SQL之间是有关系的,一荣俱荣,一损俱损,所以需要一个概念()包括实现,把这些SQL组合起来。
    组合起来的者须SQL就被称为事务

  • 对于用户,怎么使用事务?

    BEGIN 一组打包的SQL commit:这组SQL一起生效!!成功
    rollback:手动,这组SQL,都没有生效!!失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值