频道栏目
首页 > 资讯 > MySQL > 正文

数据库(MySQL)的优化技巧

17-08-29        来源:[db:作者]  
收藏   我要投稿

从sql语句出发:

避免使用:

NOT IN和<>操作都不会使用索引将进行全表扫描。NOT IN可以NOT EXISTS代替,id<>3则可使用id>3 or id<3来代替。

一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。

不要以为 NULL 不需要空间,其需要额外的空间,并且,在你进行比较的时候,你的程序会更复杂。当然,这里并不是说你就不能使用NULL了,现情 况是很复杂的,依然会有些情况下,你需要使用NULL值。 因为需要另外的字段判断记录是不是为null。

细节优化:

在确认返回的数据只有一条的情况下,加上LIMIT 1可以增加性能。这样一样,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。

通过去除不必要的返回字段可以提高性能,例:从数据库里读出越多的数据,那么查询就会变得越慢。并且,如果你的数据库服务器和WEB服务器是两台 独立的服务器的话,这还会增加网络传输的负载。

从表的结构出发:

比如一张表中存在userName,userPassword,还有你的家庭住址,个人喜好之类的信息。相比起来我们对userName,userPassword的操作更加的频繁,那其他的个人信息存在这张表上并不是一个明智的选择,可以选择把个人信息放在另外一张表上,这样会让你的表有更好的性能。这个叫做“垂直分割”。是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的。

尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。

索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert和update 的效率,因为 insert 或 update 时有可能会重建索引,所以视具体情况而定。一个表的索引数最好不要超过7个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。

对于索引的创建的时候,我们应该要尽量选择短的数据作为索引。

从数据库系统出发:

开启了mysql服务器查询缓存。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。

相关TAG标签
上一篇:SpringBoot项目技术点一
下一篇:Swift 3 popup model dialog传递数据
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站