mysql怎么建索引字段添加索引,mysql索引怎么加,Mysql如何适当的添加索引介绍

mysql怎么建索引字段添加索引,mysql索引怎么加,Mysql如何适当的添加索引介绍

今天,边肖将与你分享一个关于如何正确添加索引到Mysql的介绍。边肖觉得内容挺好的,现在分享给大家,很有参考价值。有需要的朋友一起看看吧。

这里先简单介绍一下索引:

添加索引是为了提高数据库查询的性能。指数是最便宜的东西。你不需要增加内存,改变程序,或者调整sql。只要执行正确的create index,查询速度可能会提高百倍千倍。这很诱人,但天下没有免费的午餐。查询速度的提高是以insert update delete的速度为代价的。而且索引大小一般是数据的三分之一,再加上索引还得加载到内存中。如果对所有字段都进行索引,会以牺牲内存为代价,所以需要适当增加索引。

这里简单介绍一下mysql中常用索引:

在添加索引之前,最好检查表中已经存在哪些索引:从表名显示索引;

1、主键索引

注意:一个表中只能有一个主键索引,但可以添加多个索引,如唯一索引、公共索引和全文索引。

主键索引:一般在建表时添加,比如id通常是主键索引加自动增量。

建表后添加主键索引:alter table table _ name添加主键(列名);

主键索引的特点:不能为空,不能唯一。

2、普通索引

创建公共索引:alter table table _ name add index name(column 1,column 2);

3、唯一索引

创建唯一索引:alter table ` table _ name ` add unique(` column `);

唯一索引和主键索引的区别:

唯一索引:可以有多个空值,但数据内容不能重复。

主键索引:不能为空,内容只能唯一。

两者的区别在于主键索引不能为null,唯一索引可以有多个null,其余都一样。

4、全文索引

全文索引仅对MyISAM有效(InnoDB在mysql5.6之后也支持全文索引)[5.7不支持MyISAM]

全文索引主要用于文本文件,如文章和标题。

创建表时创建全文索引:

创建表格` article `(

` id ' int(10)unsigned NOT NULL AUTO _ INCREMENT,

` title ' varchar(200)默认为空,

“内容”文本,

主键(` id `),

全文关键字` title` (`title`,`content `)

)engine=MyISAM(5.6以后InnoDB也支持全文索引,5.7不支持MyISAM引擎)默认CHARSET=utf8

在现有表中创建全文索引:

ALTER TABLE article ADD full text INDEX full text _ article(标题,内容);

创建全文索引后,还有一些需要注意的地方:

众所周知,模糊查询在数据库中使用like关键字,例如:

Select * from文章,其中类似“%查询字符串%”的内容;

那么,我们是以同样的方式使用全文索引吗?不,当然,我们必须使用唯一的语法来用全文索引进行查询。例如,我们希望在文章表的标题和内容列中完全搜索指定的查询字符串。我们可以编写如下SQL语句:

select * from article where match(title,content) against('查询字符串');

强注:MySql自带的全文索引只能搜索英文,目前不能搜索中文。如果需要对包括中文在内的文本数据进行全文检索,就需要使用Sphinx /Coreseek技术对中文进行处理。

注意:目前在使用MySql自带的全文索引时,如果查询字符串的长度过短,将得不到想要的搜索结果。MySql全文索引中的默认最小单词长度是4个字符。此外,如果查询字符串包含停用字词,停用字词将被忽略。

如果可能的话,请尽量在创建全文索引之前创建一个表并插入所有数据,而不要在创建表的时候直接创建全文索引,因为前者比后者效率更高。

Delete index sql语句:alter table table _ name drop index name;

通过上面的简单介绍后,那么应该在哪些字段上添加索引呢?

1.应该为经常查询的字段创建索引。

2.更新非常频繁的字段不应该被索引。

3.唯一性差的字段(如性别字段)不应被索引。

4.不应索引不会出现在where条件之后的字段。

如果满足以下条件,则应创建索引:

1.经常被查询的字段和经常出现在where条件之后的字段应该被索引。

2.您可以为不经常更新的字段创建索引。

索引使用的注意事项

1.对于创建的多列索引,只要查询条件中使用了最左边的列,一般都会使用该索引。

例如,我们为标题、内容添加了一个复合索引。

select * from table_name,其中title=' test将使用索引

select * from table_name,其中content=' test将不使用索引。

2.对于使用like的查询,如果查询是“% a”,将不使用索引,而like“a %”将使用索引。不能在开头使用%和_等更改值。

3.如果条件中有或,即使其中有条件索引也不会使用。

4.如果列类型是字符串,请确保在条件中引用数据。

检查索引的用法:显示类似“handler _ read%”的状态;

Handler_read_key:这个值越高越好。它越高,使用索引查询它的次数就越多。

Handler_read_rnd_next:这个值越高,查询效率越低。

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: