数据库优化是一个比较宽泛的概念,涵盖范围较广。大的层面涉及分布式主从、分库、分表等;小的层面包括连接池使用、复杂查询与简单查询的选择及是否在应用中做数据整合等;具体到sql语句执行效率则需调整相应查询字段,条件字段,索引使用等。

对于sql语句执行效率,可以通过数据库查看sql语句执行计划来进行优化。

数据库执行explain 命令,结果如下:

涉及字段含义:

id:执行顺序号,值越大,越先执行

select_type:查询类型,普通,联合,子查询等;

simple:简单查询

primary:主查询

subquery:子查询

drived(衍生):from 列表中包含的查询

union:联合查询,union之后的

union:联合查询的结果查询

table:涉及的表

type:访问类型,即数据是怎么获取到的

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

const:只需匹配一行数据,如:where primary_key=x

ref:非唯一性索引扫描,匹配多行

range:范围匹配,如between、in

index:取索引列,从索引文件读取

all:全表扫描

possible_keys:查询字段包含的索引

key:使用的索引

key_len:索引中使用的字节数

rows:找到所需的记录所需要读取的行数

extra:额外信息

Using temporary:使用临时表保存中间结果,group by

Using filesort:对数据使用一个外部的索引排序,而不是按照表内的索引进行排序读取。也就是说mysql无法利用索引完成的排序操作称为“文件排序”

Using index:使用了覆盖索引(Covering Index),避免了访问表的数据行,效率高

Using where : 表示服务器将存储引擎返回行后再应用where过滤条件

Impossible WHERE:不可达的查询

。。。

最新文章

  1. 体验phonegap3.0
  2. javascript中利用柯里化函数实现bind方法
  3. win7双系统安装ubuntu并配置常用软件
  4. (shell )函数
  5. BZOJ3557: [Ctsc2014]随机数
  6. linux中wc命令用法
  7. Linux进程含义知多少
  8. Ruby Exception
  9. OC中常用的字符处理
  10. SVN版本控制系统搭建(+结合http服务)
  11. Windows Internals 笔记——线程优先级
  12. IOC应用之 Ninject
  13. IntelliJ IDEA2018.3 最新破解方法 无需改host
  14. ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及几种abp封装的Javascript函数库
  15. ACM-ICPC 2017 Asia Urumqi:A. Coins(DP)
  16. MySQL学习笔记-MySQL体系结构总览
  17. Android - 序列化与反序列化
  18. Mybatis插件开发
  19. sqlite - Sqlite Wrappers - Delphi
  20. 【nodeJS】webstorm中设置nodej智能提示

热门文章

  1. Linux Ubuntu出去看看
  2. Redis(二)安全设置
  3. sys_arch interface for lwIP 2.0.3
  4. STM32F103 ucLinux开发之三(内核启动后不正常)(完结)
  5. ArcMap中用python的split方法提取字段的值
  6. Spring Cloud Consul 之Greenwich版本全攻略
  7. Unity各平台内置宏定义
  8. Lucene补充
  9. 搭建Java的运行和开发环境
  10. macOS,安装+配置+激活:MySQL8.0 + Navicat Premium12