mysql索引尽管提高了查询的速度,但是也并不是尽善尽美的,mysql索引也有着自身的不足之处,下面就让我们一起来了解一下。
mysql索引的不足之处
过多的使用索引将会造成滥用。因此索引也会有它的缺点:
◆虽然mysql索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
◆建立mysql索引会占用磁盘空间的索 引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。
索引只是提高效率的一个因素,如果你的 MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。
使用mysql索引的注意事项
使用mysql索引时,有以下一 些技巧和注意事项:
◆索引不会包含有NULL值的列
只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有 NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。
◆使用短索引
对串列进 行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进 行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
◆索引列排序
MySQL查询只使用一个索引,因此如果 where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
◆like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。
◆不要在列上进行运算
select * from users where YEAR(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
select * from users where adddate<‘2007-01-01’;
◆不使用NOT IN和<>操作
分享到:
相关推荐
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置.docx
列举一些常见的数据库性能优化方法。 什么是数据库表关联?列举一些常见的表关联类型。 什么是数据库存储过程和触发器?它们的作用和使用场景是什么? 什么是数据库视图?它的作用和使用场景是什么? 什么是...
课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与事务并发,MySQL性能优化总结与MySQL配置优化。课程安排的学习的教程与对应的学习课件,详细的学习笔以及课程...
性能调优专题_-Mysql索引优化与底层数据结构深入剖析
Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 优化实战范例 3 认识影响结果集 4 影响结果集的获取 4 影响结果集的解读 4 常见案例及优化思路 5 理解执行状态 7 常见...
主要介绍了Mysql性能优化案例 - 覆盖索引分享,需要的朋友可以参考下
总结了mysql优化的一些内容:例如btree索引,hash索引,聚簇索引和费举措索引,多列索引、重复索引和冗余索引等如何用,count、unicon等优化查询的方法。。。
教程包含mysql优化思路讲解、索引优化、分页优化、主从复制集群配置、分区、事务讲解以及其他常见问题讲解等
MySQL性能优化概述MySQL性能优化概述
由浅入深探究mysql索引结构原理、性能分析与优化
Q: 为什么别人问你MySQL优化的知识 总是没有...Q: 如何提高MySQL的性能? A: 需要优化,则说明效率不够理想. 因此我们首先要做的,不是优化,而是---诊断. 治病的前提,是诊病,找出瓶颈所在. CPU,内存,IO? 峰值,单条语句?
01-MySQL优化大的思路.wmv 02-Awk简洁入门.wmv 03-观察服务器周期性变化.wmv 04-观察MySQL进程状态.wmv 05-列选取原则.wmv 06-多列索引生效规则.wmv 07-多列索引实验.wmv 08-商城多列索引实验.wmv 09-聚簇索引概念....
主要内容:MySQL性能介绍,MySQL基准测试,MySQL数据库结构优化, MySQL高可用架构设计, 数据库索引优化, SQL查询优化,数据库的分库分表,数据库监控
支持Windows 64位操作系统:该版本专门为Windows 64位操作系统进行了优化,可以更好地利用64位系统的性能和资源。 数据库功能完善:MySQL提供了丰富的数据库功能,包括支持SQL语言、事务处理、索引、视图、存储过程...
Mysql_如何进行性能优化教程 数据索引通常默认采用btree索引,(内存表也使用了hash索引)。 单一有序排序序列是查找效率最高的(二分查找,或者说折半查找),使用树形索引的目的是为了达到快速的更新和增删操作...
的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。 《高性能MYSQL》指导你深入MYSQL的高级技术,充分利用MySQL的全部强大能力。你将学到如何设计 MySQL的表、索引、查询以及可以将性能发挥...