栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SQLBOY必备小技能

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQLBOY必备小技能

SQL执行顺序、MySQL索引已经索引优化
  • Sql语句执行顺序

     

from

join

on

where

group by(开始使用select中的别名,后面的语句中都可以使用)

avg,sum(聚合函数)

having

select

distinct

order by

limit

- MYSQL索引:


1.索引概述
索引是高效获取数据的数据结构;

2.索引结构
InnoDB引擎:B+Tree:所有数据出现在叶子节点,叶子节点的数据结构是双向链表
memory引擎:Hash

3.索引分类
主键索引、唯一索引、常规索引、全文索引
InnoDB引擎索引分类:
聚集索引(必须存在):
默认为主键索引,如果没有则为唯一索引,如果唯一索引也没有,则会自动生成rowid为
叶子节点挂的是这一行的数据
二级索引:
叶子节点挂的是这一行的数据的主键

4.索引语法
create[unique]index xxx on xxx(xxx);
show index from xxxx;
drop index xxx on xxx;

5.SQL性能分析
执行频次、慢查询日志、profile、explain

6.索引使用
联合索引:最左前缀法则,最左边的列必须存在索引,否则联合索引失效

索引失效:
(1)索引列函数运算
(2)字符串不加引号,会造成隐式类型转换
(3)like模糊匹配,前面加%
(4)or连接条件一边有索引一边没索引
(5)全部扫描比走索引快(数据分布问题)

SQL提示:
覆盖索引(回表查询):
前缀索引
单列/联合索引:
推荐使用联合索引,可避免回表查询问题

7.索引设计原则
表:
针对表,数据量大,查询频次高
字段:
where,order,group by之后的字段
索引:
①列唯一,推荐唯一索引;
②能使用联合索引使用联合索引;
③涉及字符串较长或者大文本字段推荐使用前缀索引。

- SQL优化=索引优化

1.插入数据
insert:批量插入、手动控制事务、主键顺序插入
大批量插入:load data local infile

2.主键优化
主键长度尽量短、顺序插入AUTO INCREMENTUID

  1. order by优化
    using index:直接通过索引返回数据,性能高
    结 using filesort:需要将返回的结果在排序缓冲区排序

  2. group by优化
    索引,多字段分组满足最左前缀法则

  3. limit优化
    覆盖索引+子查询

  4. count优化
    性能:count(字段)

  5. update优化
    尽量根据主键/索引字段进行数据更新

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号