索引几连问

1.为什么要使用索引

  1. 唯一索引可以保证数据库每一行数据的唯一性
  2. 大大加快查询的速度
  3. 加快表的连接?
  4. 将随机io变为顺序io?

2.为什么不对表中的每一列创建索引

  1. 索引需要占用物理空间
  2. 对表中的数据进行修改时,索引也需要动态维护。

3.索引如何提高查询的速度

  1. 将无序的结构变为有序的数据(平衡二叉树)

4.索引的注意事项

  1. 在经常需要查询的列上面创建索引,可以加快查询速度
  2. 在where子句中的列创建索引,加快判断的速度
  3. 在经常需要排序的列上面创建索引,因为索已经排序
  4. 避免在where字句中对字段施加函数,导致无法命中索引
  5. 避免使用业务主键,而是使用逻辑主键
  6. 索引项需要时NOT NULL,否则对导致全表扫描
  7. 删除长期未使用的索引

5.单条查询使用哈希表结构索引,而绝大多数情况下建议使用B+索引

6.MyISAM与InnoDB实现BTree索引方式的区别

  1. 在MyISAM中的B+树的叶子节点,无论是主键索引还是辅助索引,叶子节点的Data域存放的都是数据记录的地址,然后通过该地址去相应的表中读取数据。索引其主键索引和辅助索引均是非聚簇索引
  2. InnoDB中,主键索引的叶子节点存放的是数据库中每一行的数据,而辅助索引的叶子节点存放的是主键索引的值,再通过主键索引的B+树找到每一行的数据。这其中,主键索引又称为聚簇索引,而辅助索引称为非聚簇索引。
    在这里插入图片描述
    一图胜千言

7.为什么索引可以提高查询的速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值