mysql之索引
一、索引是什么?
比如我们要在字典中找某一字,如何才能快速找到呢?那就是通过字典的目录。
对数据库来说,索引的作用就是给‘数据’加目录。
二、索引算法
设有N条随机记录,不用索引,平均查找N/2次,那么用了索引之后呢?
tree(二叉树)索引 log2N
hash(哈希)索引 1
三、优缺点
优点:加快了查询的速度(select)
缺点:降低了增删改的速度(update/delete/insert)
增加了表的文件大小(索引文件甚至可能比数据文件还大)
四、索引的使用原则
不过得使用索引;
索引条件列(where后面最频繁的条件比较适宜索引)
索引散列值,过于集中的值不要索引
例如:给性别列 ’男‘,’女‘加索引,意义不大
五、索引类型
1.普通索引:仅仅是加快了查询速度
2.唯一索引:行上的值不能重复
3.主键索引:不能重复
主键索引和唯一索引的区别:主键必唯一,但是唯一索引不一定是主键;
一张表上只能有一个主键,但是可以有一个或多个唯一索引
4.全文索引:fulltext index
六、查看某张表上的所有索引
show index from tableName [\G,如果是在cmd窗口,可以换行];
七、建立索引
alter table 表名 add index/unique/fulltext [索引名](列名) ; ---索引名可不写,不写默认使用列名
alter table 表名 add primary key(列名) --不要加索引名,因为主键只有一个
八、删除索引
删除非主键索引
alter table 表名 drop index 索引名;
删除主键索引:
alter table 表名 drop primary key;
九、案例
设有一张新闻表 15列,10列上有索引,共500w行数据,如何快速导入?
1.把空表的索引全部删除
2.导入数据
3.数据导入完毕后,集中建索引
十、全文索引与停止词
全文索引的用法:
match(全文索引名) against('keyword');
select * from 表 where match(全文索引名) against('keyword');
select id,match(全文索引名) against('keyword') from 表;//查看匹配度值
关于全文索引的停止词:
全文索引不针对非常频繁的词做索引
如:this,is,you,my等等
全文索引在mysql的默认情况下,对于中文意义不大。
因为英文有空格,标点符号来拆成单词,进而对单词进行索引;
而对于中文,没有空格来隔开单词,mysql无法识别每个中文词。
可以使用sphinx插件来进行全文索引的中文索引。
mysql之索引的更多相关文章
- 【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引
本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类 ...
- MySQL中索引和优化的用法总结
1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的 ...
- MySQL 联合索引详解
MySQL 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c ...
- Mysql复合索引
当Mysql使用索引字段作为条件时,如果该索引是复合索引,必须使用该索引中的第一个字段作为条件才能保证系统使用该索引,否则该索引不会被使用,并且应尽可能地让索引顺序和字段顺序一致
- 如何正确建立MYSQL数据库索引
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- mysql高性能索引策略
转载说明:http://www.nyankosama.com/2014/12/19/high-performance-index/ 1. 引言 随着互联网时代地到来,各种各样的基于互联网的应用和服务进 ...
- MySQL创建索引语法
1.介绍: 所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引.总索引长度为 ...
- mysql使用索引优化查询效率
索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没 ...
- Mysql中索引的 创建,查看,删除,修改
创建索引 MySQL创建索引的语法如下: ? 1 2 3 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON ...
- mysql 联合索引(转)
http://blog.csdn.net/lmh12506/article/details/8879916 mysql 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中 ...
随机推荐
- windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因
一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新 ...
- MySQL高效分页解决方案集
一,最常见MYSQL最基本的分页方式: select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的 ...
- 条件与(&&)和逻辑与(&)以及条件或(||)和逻辑或(|)区别
条件与(&&)和逻辑与(&)以及条件或(||)和逻辑或(|)区别在于它们的运算结果是不相同的. 条件与(&&)和条件或(||)采用的是所谓的"短路规则 ...
- 抱怨IT公司人才缺乏?留住现有人才方是正途
摘要:员工的好坏决定着IT公司的未来,可很多IT公司在抱怨之时自己的人才却正在流失,如何留住现有的优秀员工?国外知名经理人Sharon Florentine建议:改善自己的管理.让员工不断地学习.创建 ...
- 设计模式 - observer
简单来讲,就是observer依赖于subject,当subject发生变化时,observer得到通知,并将状态与subject同步,常来用于维护对象间状态的一致性. observer的工作过程大体 ...
- (转载)Web存储和SessionStorage locaStorage
<转> sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在 ...
- 学习面试题Day03
1.Java中的注释有哪些? 如果不算Annotation,Java的注释有3种,即行注释.块注释和文档注释.它们往往适合于不同地方的注释,其中文档注释比较特殊,它的注释信息可以进入到javadoc文 ...
- (八)学习CSS之line-style-type属性
参考:http://www.w3school.com.cn/cssref/pr_list-style-type.asp 设置不同的列表样式: ul.circle {list-style-type:ci ...
- 先前设定的sa密码忘记了,如何修改sa密码?
在window身份验证登陆后,新建查询,输入以下代码就可以修改sa密码了: use master go exec sp_password null,'123456','sa' go
- NFA和DFA区别
一个数据块的访问时间等于寻道时间.旋转延迟时间和数据传输时间三者之和: NFA和DFA区别: 一个状态如A,遇0可以转换到下一个状态B或C,因为选择多所以不确定,因此为不确定的有限自动机: 一个状态还 ...