mysql索引提高效率(MySql如何查看索引并实现优化)
mysql索引提高效率
MySql如何查看索引并实现优化mysql中支持hash和btree索引。innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引
我们可以通过下面语句查询当前索引使用情况:
|
show status like '%Handler_read%' ; + -----------------------+-------+ | Variable_name | Value | + -----------------------+-------+ | Handler_read_first | 0 | | Handler_read_key | 0 | | Handler_read_last | 0 | | Handler_read_next | 0 | | Handler_read_prev | 0 | | Handler_read_rnd | 0 | | Handler_read_rnd_next | 0 | + -----------------------+-------+ |
如果索引正在工作,则Handler_read_key的值会很高,这个值代表一个行被索引值读的次数,很低值表名增加索引得到的性能改善不高,因此索引并不经常使用
如果Handler_read_rnd_next值很高意味着查询运行效率很低,应该建立索引补救,这个值含义是在数据文件中读取下一行的请求数。如果正在进行大量表扫描,Handler_read_rnd_next的数值将会很高。说明索引不正确或者没有利用索引。
优化:
优化insert语句:
1.尽量采用 insert into test values(),(),(),()...
2.如果从不同客户插入多行,能通过使用insert delayed语句得到更高的速度,delayed含义是让insert语句马上执行,其实数据都被放在内存队列中个,并没有真正写入磁盘,这比每条语句分别插入快的多;low_priority刚好相反,在所有其他用户对表的读写完后才进行插入。
3.将索引文件和数据文件分在不同磁盘上存放(利用建表语句)
4.如果进行批量插入,可以增加bulk_insert_buffer_size变量值方法来提高速度,但是只对MyISAM表使用
5.当从一个文本文件装载一个表时,使用load data file,通常比使用insert快20倍
优化group by语句:
默认情况下,mysql会对所有group by字段进行排序,这与order by类似。如果查询包括group by但用户想要避免排序结果的消耗,则可以指定order by null禁止排序。
优化order by语句:
某些情况下,mysql可以使用一个索引满足order by字句,因而不需要额外的排序。where条件和order by使用相同的索引,并且order by的顺序和索引的顺序相同,并且order by的字段都是升序或者降序。
优化嵌套查询:
mysql4.1开始支持子查询,但是某些情况下,子查询可以被更有效率的join替代,尤其是join的被动表待带有索引的时候,原因是mysql不需要再内存中创建临时表来完成这个逻辑上需要两个步骤的查询工作。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/ghjbk/p/7220886.html
- 阿里云mysql配置升级注意事项(详解如何在阿里云上安装mysql)
- navicatformysql使用视图(Navicat for MySQL的使用教程详解)
- mysql的默认隔离级别(再有人问你MySQL的隔离级别是什么,就把这篇文章发给他!)
- mysql高级变量查询(MySQL 使用自定义变量进行查询优化)
- mysql多核cpu利用(mysql CPU高负载问题排查)
- mysql访问被拒绝(nacos无法连接mysql的解决方法)
- mysql存储引擎是什么(详解mysql中的存储引擎)
- docker怎么连接mysql(docker如何安装mysql)
- dockermysql实例(docker 连接宿主Mysql操作)
- mysql锁机制及原理(MySQL锁阻塞的深入分析)
- mysql总是报错error(MySQL 5.6主从报错的实战记录)
- mysql中innodb的特性(Mysql InnoDB的锁定机制实例详解)
- mysql单个表可以储存多少内容(浅谈mysql一张表到底能存多少数据)
- idea向数据库中插入中文报错(Idea连接MySQL数据库出现中文乱码的问题)
- 如何查找MySQL中查询慢的SQL语句
- docker怎样安装mysql8(docker-compose安装db2数据库操作)
- 给儿童吃什么最好(给儿童吃什么最好消化)
- 杭州旅游攻略()
- 云南旅游攻略(云南旅游攻略5天攻略)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
热门推荐
- 数据库docker技术(总结Docker不适合部署数据库的7大原因)
- html5定位地理位置(html5 制作地图当前定位箭头的方法示例)
- html5 拍照上传(Html5在手机端调用相机的方法实现)
- html5添加背景(Html5实现首页动态视频背景的示例代码)
- python学生管理系统的思路(python实现学员管理系统)
- Sql Server常用系统存储过程
- mysql参数说明(MySQL中你可能忽略的COLLATION实例详解)
- asp.net中split的用法
- SQLServer2019安装教程图文详解(SQLServer2019安装教程图文详解)
- webapp前端能用yii2开发吗(Yii Framework框架使用PHPExcel组件的方法示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9