首页 > 试题广场 >

简述索引的用途和优缺点,并谈谈给表加索引的时候可依据哪些规则

[问答题]
简述索引的用途和优缺点,并谈谈给表加索引的时候可依据哪些规则?

索引的用途:

  1. 本质:索引是一种满足快速查询算法的数据结构,在mysql中采用B+tree,是采用平衡二叉树的基础上,在叶子节点之间增加了链表,能够更加高效的提升查询效率
  2. 用途:提升查询效率,提升用户体验

索引的优缺点:

优点:

  1. 提升检索效率,从而降低磁盘IO成本;
  2. 索引已经是经过排序后的数据结构,通过索引列进行排序,降低排序带来的CPU消耗

缺点:

  1. 索引的存在形式,存储在物理磁盘上的文件,会增加物理磁盘的开销
  2. 降低更新表的速度:在update、insert、delete操作时,mysql不仅要维护数据文件,也同样要更新索引信息

给表加索引的几个原则:

  1. 经常出现在where、order by、group by条件中的字段,需要在此字段上建立索引
  2. 每张表必须建立主键索引,原则:最好是无用的整型列,作为主键,如果不手动添加主键,mysql也会自己默认创建主键
  3. 最左前缀匹配原则:适用于建立联合索引
  4. 尽量建立联合索引,而不是建立较多的单列索引
  5. 索引不是建的越多越好
  6. 尽量使用数据量小的列做索引
  7. 尽量使用前缀索引

发表于 2021-01-19 23:43:01 回复(0)
索引的用途是为了加快查找速度,索引一般使用hash索引或者B+树索引,在索引上进行查找,避免了对表进行顺序扫描,节省了时间。
索引的优点:根据某一列进行查询的速度很快;缺点:索引会占用内存空间,选择不适合的索引会增加扫描时间。

加索引的依据:SQL语句的查找条件,范围查找使用B+树索引比较好,单值查找或者group by/distinct等小组形式的查询使用哈希索引比较好。
发表于 2021-01-10 20:39:09 回复(0)