sql优化

作者: wqjcarnation | 来源:发表于2021-07-29 14:14 被阅读0次

https://www.bilibili.com/video/BV1KW411u7vy?p=19

1、索引的定义:

是帮助数据库高效获取数据的数据结构
排好序的快速查找数据结构

2、结构

首先说一点,mysql索引的数据结构就是用到的 B树 B+树 hash树。
没有特殊说明的是采用 B树,其中的聚集索引、覆盖索引、复合索引、唯一索引是采用B+树。

B+树的特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树的优势:
1.单一节点存储更多的元素,使得查询的IO次数更少。
2.所有查询都要查找到叶子节点,查询性能稳定。
3.所有叶子节点形成有序链表,便于范围查询。

3、索引目的

提高查询效率,类似字典

4、存储

索引本身也很大,存储到磁盘上。

5、索引优势劣势

优势:提高查询效率,降低IO成本
降低排序成本,减少CPU消耗

劣势:索引也会占用空间
查询会快,但是修改和添加会变慢
有大量数据的表,需要花时间研究优秀的数据索引,优化索引

6、索引分类

单列索引:一个索引单个列 一个表可以有多个单列索引,但单列索引最好不要超过5个
唯一索引:索引列中的值必须是唯一的,但是允许为空值。unique
复合索引:一个索引可以有多个列

7、语法

添加:create [unique] index indexname on tablename (columname(length)....)
alter table add [unique] index indexname on tablename (columname(length)....)
删除:drop index [indexname] on tablename
查看:show index from tablename

create unique index myindex2 on constantitem(constantName,constantCode)
show index from constantitem
drop index name1 on constantitem

哪些适合建索引

1、主键自动索引
2、经常做为查询条件的字段
3、查询中与其他表关联的字段(外键)
4、单键还是组合,高并发下倾向于建组合索引
5、排序的字段
6、统计或分组的字段

哪些不适合建索引

1、表记录太少(2000条以下不用建)
2、频繁更新的字段
3、数据重复且分布平均的字段
3、where条件里用不到的

相关文章

  • 常用sql优化2019-09-27

    sql优化 sql优化.................................................

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • sql优化的一般策略

    sql 优化的一般策略:索引优化,sql改写,参数优化,优化器 索引优化 以select * from vvsho...

  • SQL语句优化, since 2022-04-22

    (2022.04.22 Fri)SQL语句的优化目的在于提高SQL语句的运行效率。注意SQL优化和数据库优化的区别...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • MySQl优化学习笔记(七)SQL优化简介

    一、SQL优化简介 1、我们平时说的SQL优化就是优化SQl语句和索引(通俗说就是使用什么样的SQL语句能够让索引...

  • 实战001-提煤单明细查询

    一、code 二、优化代码 2.1、优化在循环中发SQL 优化后代码 二、SQL 二、使用 Profile 分析 ...

  • MySQL优化策略

    1、 sql优化 1.1 SQL 语句简化,简化是 SQL 优化的一大利器,因为简单,所以优越。 1.2 尽可...

  • sql优化工具使用之explain

    关于sql优化,这个话题太大,我怕我说不好,因此本文仅以sql优化工具为题,如果对sql优化有兴趣,我建议去阅读下...

网友评论

      本文标题:sql优化

      本文链接:https://www.haomeiwen.com/subject/sqdxvltx.html