看优化器优化后的执行计划。就算最终选择了该索引,从该索引中查找了,如果该索引没有覆盖查询语句中的所有列,就走不了索引覆盖,最终还是要回表查询其他字段,这时候就还需要查询主键索引了。只有能走索引覆盖的时候,才只从该索引中查找。
如果只是单独增加一个字段索引,当然不会影响到已有的索引。
但是问题是如果你增加一个字段索引,对于sql语句来说where后面如果正好有好几个有索引的字段,则可能会影响到sql的执行计划。这个概率还是比较大的。
索引的目的是提高你的查询速度,当然附带的后果就是会降低你的数据更新的性能,索引的创建依据一般都是根据你实际使用情况而定,也就是说你要用哪个或者那几个字段作为查询条件,就在这个字段或者这些字段上面建立索引,也就是所谓的单字段索引和复合字段索引,比如:
select from student where id = 1
上面这种情况那自然就是在id上建立索引,复合索引以此类推,索引不是随意创建的,如果你用的上,那才能建立索引,如果用不上创建索引反而会降低你的数据库性能。
建议楼主去查一下有关“利用索引查询数据提高性能”之类的帖子,这样你就能对索引的意义有比较深刻的了解了。
使用ALTER TABLE语句创建索引
alter table table_name add index index_name (column_list) ;alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
删除索引
drop index index_name on table_name ;alter table table_name drop index index_name ;
alter table table_name drop primary key ;
---如果可以,望采纳
以上就是关于mysql数据库给表中的字段加上索引后,索引不失效的情况下使用这个字段只从索引中查找吗全部的内容,包括:mysql数据库给表中的字段加上索引后,索引不失效的情况下使用这个字段只从索引中查找吗、数据库字段增加索引 会影响已有索引吗、数据库的哪些字段适合添加索引等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)