介绍几种MySQL数据优化方法

一:表优化

  一般情况下表的数据越小,查询的速度也就越快:

  1.垂直拆分表:把一个表中特别长的字段拆分成多张表,然后在查询时进行关联查询,这样可以有效的提高查询效率。

  2.字段属性设置:长度类型设置够用就行,比如能设置成varchar(10)的就不要设置成varchar(100);对于某些只有固定几个值可选的字段,例如“性别”等,可以将它们定义为tinyint或int类型,因为在MySQL中,数值型数据被处理起来的速度要比文本类型快。

  二:sql语句优化方法

  1.索引可以加快查询速度但是有的操作却能破坏索引,比如:!=,<>操作符等会使索引失效。

  2.尽量不要在 where 子句中使用 or 来连接条件,这样会破坏索引。

  3.使用LIKE '%ABC'或LIKE '%ABC%'类型的查询也会破坏索引使索引失效,可以尝试使用全文搜索。

  4.应尽量避免在 where 子句中对字段进行表达式操作或进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

  5.不要使用 select * from table ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

  6.避免频繁创建和删除临时表,以减少系统表资源的消耗。

  7.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

  8.尽量避免大事务操作,提高系统并发能力。

  三:用UNION来代替临时表

  union查询,它可以把需要使用临时表的两条或更多的select查询合并的一个查询中。客户端的查询结束时,临时表会被自动删除,从而保证数据库整齐、高效。

  四:事务

  虽然大部分的查询都可以使用:子查询(Sub-Queries)、连接(JOIN)和联合(UNION)来创建各种各样的查询,但不是所有的数据库操作都可以只用一条或少数几条SQL语句完成的。很多时候需要查询多张表,这是如果其中一条语句查询错误那么后面的执行对于需求来说将没有任何意义,这是就造成了不必要的操作,这是可以使用事务进行回滚,不去执行下面的错误语句。

posted @ 2018-09-27 11:32  清仙童  阅读(252)  评论(0编辑  收藏  举报