mysql教程栏目实例讲解MySQL索引的使用
更多相关免费学习:mysql教程(视频)
MySQL索引的使用实例一. 慢查询日志二. 查询分析器——explain三. 索引的基本使用四. 复合索引五. 覆盖索引一. 慢查询日志//查看是否开启慢查询日志 mysql> show variables like '%slow%';//临时开启慢查询日志 mysql> set global slow_query_log=ON;//查看是否开启慢查询日志 mysql> show variables like '%slow%';
//查询超过多少时间就可以记录,上面是如果超过10秒就要记录 mysql> show variables like '%long%';//改成一秒,如果超过一秒就写到慢日志里面去(一般一秒是最好的)mysql> set long_query_time=1;//查看日记存储方式,默认FILE mysql> show variables like '%log_output%';// 慢查询日志文件所在位置 mysql> show variables like '%datadir%';
//响应时间是3秒,超过了原先设定的一秒 mysql> select sleep(3);
我们去文件夹里面查看时发现它已经被存入慢查询日记里面
这部分写明了如何通过慢日志找出比较慢的SQL,后面部分要说为什么慢,如何能更快一点。
二. 查询分析器——explain
作用:通过这个可以知道查看sql慢在哪里,需要朝那些方面优化
列:我们创建一个employee数据表
create table employee( id int not null auto_increment primary key, name varchar(30) comment '姓名', sex varchar(1) comment '性别', salary int comment '薪资(元)', dept varchar(30) comment '部门');insert into employee(name, sex, salary, dept) values('张三', '男', 5500, '部门A');insert into employee(name, sex, salary, dept) values('李洁', '女', 4500, '部门C');insert into employee(name, sex, salary, dept) values('李小梅', '女', 4200, '部门A');insert into employee(name, sex, salary, dept) values('欧阳辉', '男', 7500, '部门C');insert into employee(name, sex, salary, dept) values('李芳', '女', 8500, '部门A');insert into employee(name, sex, salary, dept) values('张江', '男', 6800, '部门A');insert into employee(name, sex, salary, dept) values('李四', '男', 12000, '部门B');insert into employee(name, sex, salary, dept) values('王五', '男', 3500, '部门B');insert into employee(name, sex, salary, dept) values('马小龙', '男', 6000, '部门A');insert into employee(name, sex, salary, dept) values('龙五', '男', 8000, '部门B');insert into employee(name, sex, salary, dept) values('冯小芳', '女', 10000, '部门C');insert into employee(name, sex, salary, dept) values('马小花', '女', 4000, '部门B');insert into employee(name, sex, salary, dept) values('柳峰', '男', 8800, '部门A');
//通过explain解读他,后面加一个\G便于阅读 mysql> explain select * from employee where name='柳峰'\G;//扫描快捷 mysql> explain select * from employee where id=13\G;
效果:如下图,可以看之前为什么那么慢,需要四秒响应时间
三. 索引的基本使用mysql> show index from employee\G;//主键会默认建一个id索引
创建索引 效率提升
//查询分析 mysql> explain select * from employee where name='柳峰';//创建普通索引 mysql> create index idx_name on employee(name);
//删除 mysql> drop index idx_name on employee;
老师 事列:
如过用like检索,效率还是不变,所以要看你怎么用
四. 复合索引//查的时候可以看到一个主键索引 mysql> show index from employee\G;
目前是all全局扫描
select * from employee where name ='柳峰';//查询分析 explain select * from employee where name ='柳峰'\G;
创建索引
//创建索引 create index idx_name_salary_dept on employee(name,salary,dept);//查询分析 explain select * from employee where name ='柳峰'\G;
验证有name就能索引
// name和salary mysql> explain select * from employee where name ='柳峰' and salary=8800\G;//name和dept mysql> explain select * from employee where name ='柳峰' and dept='部门A'\G;
没有name就不能使用索引
mysql> explain select * from employee where salary=8800;mysql> explain select * from employee where dept='部门A';
五. 覆盖索引
按照上面步骤,我们可以看到四个索引,第一个是主键索引,后面是复合索引name_salary_dept
mysql> show index from employee;
如何触发
我们用id作为查询数据
mysql> select * from employee;mysql> select * from employee where id =11;
只查id
mysql> explain select id from employee employee where id=11\G;mysql> explain select id from employee\G;
//查name,salary mysql> explain select name,salary from employee;//查name,salary,dept mysql> explain select name,salary,dept from employee;//因为没有sxe条件,所以只能做全部扫描type为null mysql> explain select name,sex,salary,dept from employee;
消息,据Lookonchain数据,7月1日更新显示,ETF近1天净流出2708枚BTC,价值约1.6亿美元近7天净流出...
2 Venice AI完成6500万美元A轮融资,成为独角消息,Venice AI宣布完成6500万美元的A轮融资,成为独角兽。该公司以隐私优先的人工智能平台迅...
3 Meta Platforms正在构建云业务,出售多余人消息,Meta Platforms正在构建云业务,旨在出售其多余的人工智能算力资源。...
4 Anthropic:与亚马逊、微软和谷歌共同起草消息,Anthropic宣布正在与亚马逊、微软和谷歌共同起草一个共识框架,以评估AI监控的严重性。...
5 Hester Peirce:Bitcoin Clarity Act预计夏天通过消息,美国证券交易委员会委员Hester Peirce表示,Bitcoin Clarity Act预计将于今年夏天获得通过,目...
6 Paradex TVL从2.23亿美元暴跌至2300万美元消息,衍生品协议Paradex的总锁仓价值在代币推出后的数个月里,从1月下旬的峰值2.23亿美元暴...
7 XBIT DEX:深圳站世界杯预测活动圆满结束消息,XBIT DEX表示,深圳的预言家活动已圆满结束,镜头记录下了比赛的精彩瞬间、现场的热度...
8 伊朗议长说同时备战才好谈判消息,当地时间6月30日,伊朗首席谈判代表、议长卡利巴夫在接受采访时表示,伊朗决心维护...
9 Michael Saylor:数字信贷助力Strategy在熊市增消息,Michael Saylor表示,资本、信贷和货币结合可获得数万亿美元机会,数字信贷使Strategy今年...
10 Ouinex:交易平台解决加密市场结构性缺陷消息,Ouinex表示,其交易平台旨在解决现代加密市场的结构性缺陷。当前的加密交易环境高度...
成都来彰科技 蜀ICP备2025134723号-1
资讯来源互联网,如有版权问题请联系管理员删除。