Mysql高级之索引

系统 2099 0
原文: Mysql高级之索引

索引 : 是针对数据所建立的目录 .

作用 可以加快查询速度

负面影响 降低了增删改的速度 .

索引的创建原则 :

1: 不要过度索引

2: where 条件最频繁的列上加 . 在重复度高的列上不加,比如性别男女;

3: 尽量索引散列值 , 过于集中的值加索引意义不大 .

 

索引的类型

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

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

主键索引 : primary key  不能重复 .

主键必唯一 , 但是唯一索引不一定是主键 .

一张表上 , 只能有一个主键 但是可以用一个或多个唯一索引 .

全文索引  : fulltext index  mysql 的默认情况下 对于中文意义不大 . 一般使用第三方解决方案

因为英文有空格, 标点符号来拆成单词 , 进而对单词进行索引 .

而对于中文, 没有空格来隔开单词 ,mysql 无法识别每个中文词 .

( 上述 3 种索引 , 都是针对列的值发挥作用 , 但全文索引 , 可以针对值中的某个单词 , 比如一篇文章 ,) 全文索引不针对非常频繁的词做索引 , this, is, you, my 等等 .

索引长度 :指定一列部分内容作为索引

多列索引 :两列或多列值看做整体,当做索引。在英文网站时, first name last name 当做一个整体,此时, where 条件中只有 first name 可以发挥作用, last name  没有发挥作用,这就是作为的左前缀规则。

冗余索引 :某列有多个索引,例如在上面 last name 上再次建立索引。

Mysql高级之索引


建立索引

可以在建表时 , 直接声明索引 , 即在列声明完毕后 , 声明索引 .

例如下 :

 create table test5 (

 id int,

 username varchar(20),

 school varchar(20),

 intro text,

 primary key (id),

 unique (username),

 index (school),

 fulltext (intro)

 ) engine myisam charset utf8;

 

查看一张表上所有索引

Show index from  表名

 

建立索引

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

Alter table  表名   add primary key ( 列名 )   //  不要加索引名 , 因为主键只有一个

 

删除添加索引

删除非主键索引 :Alter table  表名  drop/add index  索引名 ;

删除主键 : alter table  表名  drop/add  primary key


Mysql高级之索引


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论