mysql索引小记
Mysql索引分为以下几类:FULLTEXT, HASH,BTREE,RTREE.
FULLTEXT:全文搜索索引
主要是解决'ad%'这样的查询效率低的问题,只能是MyISAM和InnoDB引擎上使用
HASH:哈希索引
哈希索引与B索引的区别
1:hash索引只能进行等值过虑,不能进行范围查询.这是因为hash索引是基于hash算法的
2:hash索引无法被用来避免数据的排序操作.
3:hash索引不能利用部分索引键进行查询.
4:hash索引无法避免对表的扫描.因为多个行会对应同一个hash值,所以定位到hash值之后要
对相应的表进行对比
5:当hash冲突比较多时,效率会下降.可能会比b索引还要低
BTREE:树索引
基于树结构的索引,会从根节点开始查询
索引使用时的一些注意事项
1.索引不会包涵有NULL值的列
如果一列中有NULL值,那么在创建复合索引的时候有NULL值的一列是会失效的
2.使用短索引
如果对字符类型的列进行创建索引的时候,最好指定长度.比较VARCHAR(20),如果列中的数据
在前10或20位就能确定唯一性,就没有必要对整个列进行索引.短索引可以提高查询效率,节省存储
空间和I/O操作
3.索引列排序
在一条查询语句中只会使用一条索引,如果where中使用了索引,那么order中将不会使用索引.
所以尽量避免没有必要的排序
4.like语句
尽量避免使用like语句.在like语句中%AD%或_ad,以%和_形头的查询是会让索引失效的
sdf%这样的不会使索引失效
5.不要在列上进行运算
6.不要使用not in和<>
直引虽然会提高查询效率,但是如果对表创建过多索引则会降低更新效率
mysql索引小记的更多相关文章
- MySQL索引基础知识点
什么是索引 索引类似于书本目录,是数据库存储引擎维护的用于快速查找到记录的一种数据结构,它是对查询性能优化的最有效手段. MySQL索引是在存储引擎层而不是服务器层实现的,不同存储引擎的索引工作方式也 ...
- 深入MySQL索引
MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起. 索引原理 ...
- MySQL 索引
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...
- MYSQL索引结构原理、性能分析与优化
[转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...
- MySQL索引原理及慢查询优化
原文:http://tech.meituan.com/mysql-index.html 一个慢查询引发的思考 select count(*) from task where status=2 and ...
- 【转】MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- [转]MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- MySQL索引类型总结和使用技巧以及注意事项
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable ...
- MySQL索引背后的数据结构及算法原理【转】
本文来自:张洋的MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 ...
随机推荐
- 【系统】Ubuntu和win7双系统更改系统引导菜单
1. 下载EasyBCD 2. 编辑菜单选项以及重写MBR
- 各种height/width总结
CSS盒模型是比较复杂的,尤其是当页面中有滚动条时,仅仅通过css来操作高度宽度是不够的,幸运的是Javascript提供了不少这样的接口.Javascript中clientHeight / clie ...
- word-wrap/word-break/white-space
word-wrap语法: word-wrap : normal | break-word normal : 默认值,单词如果单词超长,会冲出边界(单个单词超长,在当前行显示) break-word : ...
- GitHub注册和Git安装
一.注册GitHub GitHub官方地址:https://github.com. 在浏览器中打开GitHub网址,通过首页进行注册,如下图所示. 二.安装Git Git官方下载地址:http://g ...
- UI的线程问题:单线程原因及更新UI的四种方式
1.UI线程为什么设计为单线程? UI控件的操作不是线程安全的,对于多线程并发访问的时候,如果使用加锁机制会导致: UI控件的操作变得很复杂. 加锁的操作必定会导致效率下降. 所以android系统在 ...
- unity代码创建草和模拟风的效果
void Start() { Test4(); } //草 private Vector3[] grassArray = new Vector3[7]; private GameObject gras ...
- PHP之mb_check_encoding使用
mb_check_encoding (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7) mb_check_encoding - Check if the str ...
- 《Think Python》第5章学习笔记
目录 5.1 整除和取模(Floor division and modulus) 5.2 布尔表达式(Boolean expressions) 5.3 逻辑运算符(Logical operators) ...
- 解析Excel----ExcelHelper
public static class ExcelHelper { /// <summary> /// 获取单元格的值 /// </summary> /// <param ...
- IOS bug之Code Sign error:Provisioning profile
刚才解决一个版本冲突的bug,记在了博客里,这让我想起了另外一个bug,当时犹豫公司的开发者账号过期了,我打开应用运行时提示Code Sign error:Provisioning profile ...