- 浏览: 50356 次
- 性别:
文章分类
- 全部博客 (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 584下面为您介绍的Mysql ... -
数据库中表散列
2015-10-29 00:52 591数据库中的散列法 ... -
mysql大数据高并发处理
2015-10-26 22:00 428一、数据库结构的设计 ... -
优化SQL查询:如何写出高性能SQL语句
2015-10-17 17:41 447优化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 435优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判 ... -
调整Mysql中insert、update、delete的顺序来以提高效率
2015-09-26 22:26 621MySQL还允许改变语句调度的优先级,它可以使来自多个客户端的 ... -
Mysql join语句的优化
2015-09-26 22:25 348Mysql4.1开始支持SQL的子查询。这个技术可以使用SEL ... -
Mysql order by语句的优化
2015-09-19 11:56 404在某些情况中,MySQL可以使用一个索引来满足ORDER BY ... -
Mysql group by语句的优化
2015-09-13 16:01 387默认情况下,MySQL排序所有GROUP BY col1, c ... -
Mysql insert语句的优化
2015-09-08 22:59 3471) 如果你同时从同一客户插入很多行,使用多个值表的INSER ... -
Mysql大量插入数据时SQL语句的优化
2015-09-11 22:00 4751) 对于Myisam类型的表,可以通过以下方式快速的导入大量 ... -
Mysql下优化SQL的一般步骤
2015-09-07 11:50 350通过show status和应用特点了解各种SQL的执行频率 ... -
Mysql SQL Mode详解
2015-09-07 11:50 472Mysql SQL Mode简介 MySQL服务器能够工作在 ... -
Mysql使用SQL的安全问题,Mysql防止SQL注入
2015-09-07 11:50 405SQL注入简述 SQL Injection ...
相关推荐
- **目的**:厦门游家公司(4399.com)为了提升员工技能水平,制定了这份MySQL性能优化教程,旨在为已有一定MySQL使用经验的工程师提供实战指导。 - **适用场景**:主要针对高并发、大数据量的互联网应用环境,强调...
本教程将深入探讨MySQL性能优化的各个方面,帮助你理解并实践有效的优化策略。 首先,我们来了解**Mysql执行优化**。MySQL的执行优化主要涉及查询计划的选择、索引的使用以及SQL语句的优化。在数据库操作中,SQL...
MySQL性能优化是数据库管理员和...通过学习caoz的MySQL性能优化教程,你将掌握一系列实用技巧,使你的MySQL数据库达到最佳运行状态,满足业务需求,降低运维成本。无论是初学者还是经验丰富的DBA,都能从中获益匪浅。
### MySQL性能优化教程知识点概述 #### 一、MySQL执行优化 **1.1 背景及目标** - **背景**: 针对已具备一定MySQL使用经验的工程师,特别是适用于高并发、海量数据处理的互联网环境。 - **目标**: 通过对MySQL性能...
MySQL性能优化教程旨在帮助数据库管理员和开发者提升MySQL数据库的运行效率,减少查询延迟,提高系统整体性能。在本文中,我们将深入探讨MySQL的执行优化、数据索引的理解以及执行状态的解析。 首先,MySQL执行优化...
MySQL索引和优化是数据库管理中的关键环节,它直接影响到数据查询的速度和效率。本教程将详细介绍MySQL中的索引类型及其优化策略。 首先,我们需要理解什么是索引。索引是数据库为了快速查找特定记录而创建的一种...
### MySQL性能优化教程知识点梳理 #### 一、MySQL执行优化 **1.1 背景及目标** - **目标人群**: 已经具备一定的MySQL使用经验的技术人员。 - **适用场景**: 高并发和大数据量的互联网环境。 - **语言风格**: 口语...
45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级_索引优化10.avi 42.MySQL高级_索引优化9.avi 41.MySQL高级_索引优化8.avi 40.MySQL高级_索引优化7.avi 39...
例如,使用索引、优化数据库结构、使用缓存等。这些技巧可以帮助我们提高数据库的性能和效率。 本PPT课件对MySQL数据库优化的重要知识点进行了详细的讲解,并提供了许多实用的优化技巧和方法。通过学习本PPT课件,...
### MySQL优化教程 #### 一、数据库设计要合理 在MySQL优化过程中,合理的数据库设计是基础,也是最为关键的一环。良好的设计不仅能够提高查询效率,还能减少存储空间的需求。 - **规范化**:通过规范化避免数据...
课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与事务并发,MySQL性能优化总结与MySQL配置优化。课程安排的学习的教程与对应的学习课件,详细的学习笔以及课程...
09.MySQL高级索引索引分类.avi 10.MySQL高级索引索引语法.avi 11.MySQL高级索引索引设计原则.avi 12.MySQL高级视图概述.avi 13.MySQL高级视图创建及修改视图.avi 14.MySQL高级视图查看及删除视图.avi 15.MySQL高级...
1. **索引优化**:索引是提高查询速度的关键。了解如何创建和设计有效的索引,包括主键、唯一键和非唯一键,以及何时使用B-Tree、Hash或全文索引。合理使用复合索引,避免全表扫描,可以大幅提高查询效率。 2. **...
韩顺平-Mysql优化系列视频教程(19讲)课程目录:【】Mysql优化01 关键技术【】Mysql优化02 表的设计【】Mysql优化03 慢查询(一)【】Mysql优化04 慢查询(二)【】Mysql优化05 慢查询(三)【】Mysql优化06 索引(一)【】...