您的位置:首页 > 数据库 > MySQL

mysql索引笔记

2015-12-04 11:52 465 查看

索引理论

类型:

哈希

散列算法

原理:

哈希算法

将各个数据重组成编号,查询时将数据编号直接找到查询到的值

优势:

一次性找到该值

劣势:

数据连续性差

中 编号 005

国 编号 006

人 编号 007

民 编号 008

如果查询 中民

tree

二叉树算法

log2N

原理:当我查询3时,此时4比3大走子结点,2比3小走右结点此时找到值

优势:查询次数相对减少

1234567

4

2 6

1 3 5
7

索引加快了查询的速度,但降低了增删改的速度

注意:

换服务器导数据

.sql

新闻表500w行

连续插入500w次 建立索引5000w次,会导致工作量异常之大

处理办法,先删除索引,再导入

导入后统一加索引

不过度索引

索引条件列(where 后面最频繁的条件比较适宜索引)

索引散列值

如数据极散 不重复

过于集中的值不要索引

例如:给性别男,女加索引

索引实践

普通索引:仅仅是加快查询速度

唯一索引:行上的值不能重复

主键索引:主键不能重复 索引不一定是主键,一张表上只能有一个主键但是可以用一个或多个唯一索引

主键必须唯一

全文索引:

注意:

使用like查询的效率异常的低

重点:

全文检索有停止词的概念,即碰到This is,you,my常见词时检索无结果,且无法检索中文

语法: select * from 表名 where match(列名) against('关键字')

推荐学习:sphinx,针对mysql做的一个插件支持中文检索

创建索引

查看一张表上所有索引

show index from 表名

建立索引

alter table 表名 add index(unique/fulltext) [索引名] 列名

特别 primary key唯一索引 不需要加索引名,因为主键只有一个

删除索引

alter table 表名 drop index 索引名

特别 primary key 删除时无需索引名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: