本文主要介绍如何优化数据库的语句,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。
MySQL数据库中如何加快查询速度,优化查询效率的主要原则是尽量避免扫描整个表,考虑对where和orderby中涉及的列建立索引。
建立索引不是建的越多越好,原则是:
第一:表里的索引不是越多越好
表中的索引越多越好,没有具体的数字。根据以往的经验,一个表中索引的最大数量不能超过6个,因为索引越多,更新和插入操作的性能也会受到影响,涉及到索引的新建和重建操作。
第二:建立索引的方法论为:
大多数查询经常使用的列;
很少修改的列;
索引需要建立在数据差异较大的列上。
在上述基础上,我们讨论如何优化sql。
00-1010首先读一个这样的语句:select * from musers where reaea=' Beijing ' and age=22;
如果我们分别在区域和年龄上创建索引,mysql查询一次只能使用一个索引,所以虽然这比没有索引的全表扫描提高了很多效率,但是如果我们在区域和年龄列上创建复合索引,会带来更高的效率。
当使用索引字段作为条件时,如果索引是复合索引,则必须使用索引中的第一个字段作为条件,以确保系统使用该索引;否则将不使用索引,字段顺序应尽可能与索引顺序一致。
例如,如果我们创建这样一个索引(面积、年龄、工资),就相当于创建了三个索引(面积、年龄、工资)、(面积、年龄)和(面积),称为最佳左前缀特征。
复合索引(形如(x,y,uid)索引的索引)
a.ORDERBY+LIMIT组合的索引优化
如果SQL语句的形式为:选择[列1],[列2],从[表]按[排序]限制[偏移量],[限制]排序;
这个SQL语句优化起来相对简单,可以在字段[sort]上创建索引。
b.WHERE+ORDERBY+LIMIT组合的索引优化
如果一条SQL语句看起来像:选择[列1],[列2],from [table],其中[columnx]=[value]按[排序]限制[偏移量],[限制]排序;
在此语句中,如果仍然使用第一个示例中的索引方法,虽然可以使用索引,但效率不高。更有效的方法是创建一个联合索引(columnX,sort)。
c.WHERE+ORDERBY多个栏位+LIMIT
如果一条SQL语句看起来像:从[table]中选择*其中uid=1orderx,ylimit,10;
对于这个语句,您可以添加这样一个索引:(x,y,uid)。其实效果更好的是(uid,x,y)。这是MySQL的排序机制造成的。
感谢您仔细阅读本文。希望边肖分享的文章《如何优化数据库中的句子》对大家有所帮助。同时也希望大家对行业信息渠道给予更多的支持和关注,更多的相关知识等着大家去学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50260.html