- 浏览: 46975 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
索引的存储分类
myisam表的数据文件和索引文件是自动分开的;innodb的数据和索引是存储在同一个表空间里面,但可以有多个文件组成。 创建索引语法如下:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON tbl_name (index_col_name,...)
index_col_name:
col_name [(length)] [ASC | DESC]
索引的存储类型目前只有两种(btree和hash),具体和表的模式相关:
myisam btree
innodb btree
memory/heap hash,btree
mysql目前不支持函数索引,只能对列的前一部分(length)进行索引,例:
create index ind_test on table1(name(5)),
对于char和varchar列,使用前缀索引将大大节省空间。
MySQL如何使用索引
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引是提高SELECT操作性能的最佳途径。
查询要使用索引最主要的条件是查询条件中需要使用索引关键字,如果是多列索引,那么只有查询条件使用了多列关键字最左边的前缀时,才可以使用索引,否则将不能使用索引。
下列情况下,Mysql不会使用已有的索引:
1.如果mysql估计使用索引比全表扫描更慢,则不使用索引。例如:如果key_part1均匀分布在1和100之间,下列查询中使用索引就不是很好:
SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90
2.如果使用heap表并且where条件中不用=索引列,其他> 、<、 >=、 <=均不使用索引;
3.如果不是索引列的第一部分;
4.如果like是以%开始;
5.对where后边条件为字符串的一定要加引号,字符串如果为数字mysql会自动转为字符串,但是不使用索引。
查看索引使用情况
如果索引正在工作,Handler_read_key的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。
Handler_read_rnd_next的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引。语法:
mysql> show status like 'Handler_read%';
myisam表的数据文件和索引文件是自动分开的;innodb的数据和索引是存储在同一个表空间里面,但可以有多个文件组成。 创建索引语法如下:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON tbl_name (index_col_name,...)
index_col_name:
col_name [(length)] [ASC | DESC]
索引的存储类型目前只有两种(btree和hash),具体和表的模式相关:
myisam btree
innodb btree
memory/heap hash,btree
mysql目前不支持函数索引,只能对列的前一部分(length)进行索引,例:
create index ind_test on table1(name(5)),
对于char和varchar列,使用前缀索引将大大节省空间。
MySQL如何使用索引
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引是提高SELECT操作性能的最佳途径。
查询要使用索引最主要的条件是查询条件中需要使用索引关键字,如果是多列索引,那么只有查询条件使用了多列关键字最左边的前缀时,才可以使用索引,否则将不能使用索引。
下列情况下,Mysql不会使用已有的索引:
1.如果mysql估计使用索引比全表扫描更慢,则不使用索引。例如:如果key_part1均匀分布在1和100之间,下列查询中使用索引就不是很好:
SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90
2.如果使用heap表并且where条件中不用=索引列,其他> 、<、 >=、 <=均不使用索引;
3.如果不是索引列的第一部分;
4.如果like是以%开始;
5.对where后边条件为字符串的一定要加引号,字符串如果为数字mysql会自动转为字符串,但是不使用索引。
查看索引使用情况
如果索引正在工作,Handler_read_key的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。
Handler_read_rnd_next的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引。语法:
mysql> show status like 'Handler_read%';
发表评论
-
基于Hash算法的Mysql分表处理
2015-10-29 00:58 558下面为您介绍的Mysql ... -
数据库中表散列
2015-10-29 00:52 558数据库中的散列法 ... -
mysql大数据高并发处理
2015-10-26 22:00 400一、数据库结构的设计 ... -
优化SQL查询:如何写出高性能SQL语句
2015-10-17 17:41 417优化SQL查询:如何写出高性能SQL语句 这个问题 ... -
MySqL性能优化
2015-09-06 21:26 0I 硬件配置优化 Ø CPU选择:多核 ... -
Mysq日志管理(错误日志、查询日志、慢查询日志)
2015-09-06 21:01 0错误日志 记录内容:包含了当mysqld启动和停止时,以及服 ... -
MySql均衡负载
2015-09-06 21:01 01) 利用mysql 复制分流查询操作 利用mysql的主从复 ... -
如何减少对Mysql的访问以优化SQL语句
2015-09-06 21:00 0避免对同一数据做重复 ... -
使用mysql连接池提高性能
2015-09-06 20:59 0对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建 ... -
Mysql锁的优化
2015-09-06 20:59 0获取锁等待情况 可以 ... -
Mysql数据表的优化
2015-09-26 22:26 411优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判 ... -
调整Mysql中insert、update、delete的顺序来以提高效率
2015-09-26 22:26 585MySQL还允许改变语句调度的优先级,它可以使来自多个客户端的 ... -
Mysql join语句的优化
2015-09-26 22:25 310Mysql4.1开始支持SQL的子查询。这个技术可以使用SEL ... -
Mysql order by语句的优化
2015-09-19 11:56 377在某些情况中,MySQL可以使用一个索引来满足ORDER BY ... -
Mysql group by语句的优化
2015-09-13 16:01 359默认情况下,MySQL排序所有GROUP BY col1, c ... -
Mysql insert语句的优化
2015-09-08 22:59 3241) 如果你同时从同一客户插入很多行,使用多个值表的INSER ... -
Mysql大量插入数据时SQL语句的优化
2015-09-11 22:00 4421) 对于Myisam类型的表,可以通过以下方式快速的导入大量 ... -
Mysql下优化SQL的一般步骤
2015-09-07 11:50 323通过show status和应用特点了解各种SQL的执行频率 ... -
Mysql SQL Mode详解
2015-09-07 11:50 441Mysql SQL Mode简介 MySQL服务器能够工作在 ... -
Mysql使用SQL的安全问题,Mysql防止SQL注入
2015-09-07 11:50 384SQL注入简述 SQL Injection ...
相关推荐
Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 优化实战范例 3 认识影响结果集 4 影响结果集的获取 4 影响结果集的解读 4 常见案例及优化思路 5 理解执行状态 7 常见...
MYSQL索引和优化详细说明教程,关于索引的笔记
课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与事务并发,MySQL性能优化总结与MySQL配置优化。课程安排的学习的教程与对应的学习课件,详细的学习笔以及课程...
韩顺平-Mysql优化系列视频教程(19讲)课程目录:【】Mysql优化01 关键技术【】Mysql优化02 表的设计【】Mysql优化03 慢查询(一)【】Mysql优化04 慢查询(二)【】Mysql优化05 慢查询(三)【】Mysql优化06 索引(一)【】...
45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级_索引优化10.avi 42.MySQL高级_索引优化9.avi 41.MySQL高级_索引优化8.avi 40.MySQL高级_索引优化7.avi 39...
教程名称:大型门户网站核心技术-Mysql优化 课程目录:【】Mysql优化 资料【】Mysql优化01关键技术【】Mysql优化02表的设计【】Mysql优化03慢查询(一)【】Mysql优化04慢查询(二)【】Mysql优化05慢查询(三)【】Mysql...
Mysql_如何进行性能优化教程 数据索引通常默认采用btree索引,(内存表也使用了hash索引)。 单一有序排序序列是查找效率最高的(二分查找,或者说折半查找),使用树形索引的目的是为了达到快速的更新和增删操作...
详细记录了mysql优化相关问题的思维导图,包含执行流程、表结构对性能的影响、索引、事务、锁、sql优化原则、JOIN的原理、执行计划与执行明细等内容,部分举例说明。 适合对mysql有一定了解的人群。 详细记录了mysql...
09.MySQL高级索引索引分类.avi 10.MySQL高级索引索引语法.avi 11.MySQL高级索引索引设计原则.avi 12.MySQL高级视图概述.avi 13.MySQL高级视图创建及修改视图.avi 14.MySQL高级视图查看及删除视图.avi 15.MySQL高级...
尚硅谷_MySQL高级_索引优化答疑补充和总结口诀 · 46.尚硅谷_MySQL高级_小表驱动大表 · 47.尚硅谷_MySQL高级_in和exist · 48.尚硅谷_MySQL高级_为排序使用索引OrderBy优化 · 49.尚硅谷_MySQL高级_慢查询日志...
主要内容:MySQL性能介绍,MySQL基准测试,MySQL数据库结构优化, MySQL高可用架构设计, 数据库索引优化, SQL查询优化,数据库的分库分表,数据库监控
计算机后端-PHP视频教程. mysql优化索引.wmv
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第09章 索引(共13页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第10章 存储过程和函数(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第11章...
随着淘宝去IOE(去除IBM小型机、Oracle数据库及EMC存储设备)化的推进,MySQL 数据库在当前的互联网应用中变得越来越重要,本教程主要讲授针对 Java 开发所需的 MySQL 高级知识,课程中会让大家快速掌握索引,如何避免...
2、MySQL查询优化讲座-查询优化器 3、MySQL查询优化讲座-使用索引 4、MySQL查询优化讲座-数据类型与效率 5、MySQL查询优化讲座之调度和锁定 6、MySQL 5.0 新特性教程 7、MYSQL初学...
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第09章 索引(共13页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第10章 存储过程和函数(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第11章...
Mysql 执行优化 .............................................................................................................................. 2 认识数据索引 ..............................................
计算机后端-PHP视频教程. mysql优化的索引.wmv