简单叙述下MYSQL的查询和索引
来源:互联网 发布:早安图片制作软件 编辑:程序博客网 时间:2024/05/18 11:45
只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快--不管有没有使用索引。只有当数据库里的记录超过了1000条、数据总量也超过了MySQL服务器上的内存总量时,数据库的性能测试结果才有意义。
在不确定应该在哪些数据列上创建索引的时候,人们从EXPLAINSELECT命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的SELECT命令加一个EXPLAIN关键字作为前缀而已。有了这个关键字,MySQL将不是去执行那条SELECT命令,而是去对它进行分析。MySQL将以表格的形式把查询的执行过程和用到的索引等信息列出来。
在EXPLAIN命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍——这种情况往往可以用一索引来避免)。
possible_keys数据列给出了MySQL在搜索数据记录时可选用的各个索引。key数据列是MySQL实际选用的索引,这个索引按字节计算的长度在key_len数据列里给出。比如说,对于一个INTEGER数据列的索引,这个字节长度将是4。如果用到了复合索引,在key_len数据列里还可以看到MySQL具体使用了它的哪些部分。作为一般规律,key_len数据列里的值越小越好。
ref数据列给出了关联关系中另一个数据表里的数据列的名字。row数据列是MySQL在执行这个查询时预计会从这个数据表里读出的数据行的个数。row数据列里的所有数字的乘积可以大致了解这个查询需要处理多少组合。
在不确定应该在哪些数据列上创建索引的时候,人们从EXPLAINSELECT命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的SELECT命令加一个EXPLAIN关键字作为前缀而已。有了这个关键字,MySQL将不是去执行那条SELECT命令,而是去对它进行分析。MySQL将以表格的形式把查询的执行过程和用到的索引等信息列出来。
在EXPLAIN命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍——这种情况往往可以用一索引来避免)。
possible_keys数据列给出了MySQL在搜索数据记录时可选用的各个索引。key数据列是MySQL实际选用的索引,这个索引按字节计算的长度在key_len数据列里给出。比如说,对于一个INTEGER数据列的索引,这个字节长度将是4。如果用到了复合索引,在key_len数据列里还可以看到MySQL具体使用了它的哪些部分。作为一般规律,key_len数据列里的值越小越好。
ref数据列给出了关联关系中另一个数据表里的数据列的名字。row数据列是MySQL在执行这个查询时预计会从这个数据表里读出的数据行的个数。row数据列里的所有数字的乘积可以大致了解这个查询需要处理多少组合。
最后,extra数据列提供了与JOIN操作有关的更多信息,比如说,如果MySQL在执行这个查询时必须创建一个临时数据表,就会在extra列看到usingtemporary字样。
转自: http://www.kkxxkse.com
- 简单叙述下MYSQL的查询和索引
- 简单叙述一下MYSQL的优化
- 简单叙述一下MYSQL的优化
- 企业信息化简单叙述下自己遇到过的情况
- 1、Mysql:mysql简单的索引和in、or、union unionall语句查询速度
- 简单介绍下MYSQL的索引类型
- 简单介绍下MYSQL的索引类型
- mysql 索引的使用和查询语法
- Mysql的索引和查询优化
- MySQL索引和查询优化的实际操作
- MySQL的join查询和索引
- Mysql的索引和慢查询优化
- LayoutParams的简单的叙述
- mysql简单的索引和in、or、union unionall语句查询速度
- Mysql索引和优化查询
- MySQL索引和优化查询
- MySQL索引和优化查询
- MySQL索引和优化查询
- IplImage与Cvmat转换
- Python Django 第一步:安装配置 windows环境
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- C#webservice服务学习笔记
- 使用Nginx转发真实头信息
- 简单叙述下MYSQL的查询和索引
- 最全面 Nginx 入门教程 + 常用配置解析
- java基础<内部类>
- 关于Java 23种设计模式的有趣见解 .
- 使用Nginx如何配置Tomcat访问日志记录真实IP
- OCP-1Z0-053-V12.02-610题
- MapReduce数据流
- Linux 查找
- android平台应用GPIO模拟IR控制车载DTV