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

mySQL中索引index详解

2017-07-15 10:21 309 查看
索引
mysql <wbr>索引(index)


 

注意:
1、不要过度索引
2、索引条件列(where后面最频繁的条件列)
3、尽量索引散列值,过于集中的值不要索引。
索引类型
1、普通索引(index):仅仅是加快查询速度
2、唯一索引(unique index):行上的值不能重复
3、主键索引(primary key):主键不能索引
主键索引必定是唯一的,唯一索引不一定是主键,
一张表上只能一个主键,可以有一个或者多个唯一索引。
4、全文索引(fulltext index):在mysql 默认情况下对于中文作用不大。
查看 一张表上的索引
show index from 表名(/G可以横着显示)



 



 
索引不知道名称默认以索引的列名作索引
建立索引

alter table 表名add index/unique/fulltext [索引名](列名)
[索引名]可以不写 ,不写默认与列名相同。
alter table 表名add primary key (列名)
创建索引示例:



 
为 tel列 创建普通索引
 



 



 
为email列 添加唯一索引
 



 
为intro列添加全文索引



 



 


为id列添加主键



  
删除索引
alter  table drop index 索引名
 
示例:
删除email(唯一)索引



 



 

删除主键索引 
全文索引使用





 



 

查看匹配度
select 列名, match (索引) against (‘ 索引词’) from表名;



 

新发现 as  支持 汉字



 

全文停止字:
全文索引,不针对非常频繁的词,做索引。
针对汉语意义不大,因为因为英文单词可以依赖空格等标点来判断单词界限,进而对单词进行索引,而中文mysql无法识别单词界限。
以下表列出了默认的全文停止字 :
a's
able
about
above
according
accordingly
across
actually ...
 
注意!!换服务器导入数据:
大数据量时,先把索引去掉,导入后,统一加上索引。
索引加快查询速度,降低增删改的速度。
额外:
show create table  表名
 可以查看  创建表的语句



发现问题
使用全文索引时加上引擎 ,默认 InnoDB引擎,不支持,会报错



 

详细:

http://blog.sina.com.cn/s/blog_9707fac301016xmp.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: