码迷,mamicode.com
首页 > 数据库 > 详细

MySQL优化

时间:2018-10-28 22:03:29      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:mysql优化   特性   更新   bsp   问题   时间   font   隐式   可用性   

MySQL优化

  1. 表方面

(1) 创建字段时选取合适的长度,例:年龄字段用tinyint或者smallint即可

(2) 数据类型选取优先度 数字>字符串>text

(3) 使用数字代替枚举和日期类型

(4) 字段使用非空设定(值为null时索引不会包含该数据)

  1. 索引方面

(1) 索引可以加快数据增删改查的速度,但是索引会占据大量的硬盘空间以及在更新数据时会花费大量的时间更新索引,这是一种使用空间换取时间的方法。

(2) 根据索引特性,创建索引要采取少而精的思路。既能使用一条索引能解决问题的话就不要创建两条,能使用普通、唯一索引解决的话就不要使用联合索引。

(3) 创建索引时注意索引使用的最左原则,例:创建联合索引abc,使用索引abcab,a是可以使用索引,其他的只(ac,acb)部分使用索引或者不能使用索引

(4) 创建索引是采取区分度大的字段创建索引

(5) 同等情况下数字类型的字段要优于字符串型字段

  1. Sql语句方面

(1) 创建sql语句尽量使用索引,并准守索引的最左原则

(2) 使用join代替零时建表

(3) 如果有索引ab,那么a or b b的那一部分查询不会使用索引,必要的话可以建立b的索引

(4) 使用like查询是 条件前边不要使用%,可能会使索引失效

(5) 条件左边不要使用运算函数,会使索引失效

(6) 在查询中避免使用函数,提高数据库查询效率

(7) 不要使用!=,no等否操作,会使索引失效

(8) 使用inbetweenunion等方式优化and操作

(9) 避免隐式转换,既用’1’查询数字1,可能会导致索引失效

(10) 使用explain去分析sql语句的性能

(11) 优化limit查询,limit的数越大io占用越多

  1. 分表分库分区和集群方面

(1) 分表提高了单标的并发能量和磁盘的io性能。分区提高了磁盘的io

(2) 分库主要是为了突破的单机的性能限制

(3) 使用集群可以加强服务的可用性,提高并发性

① 双主 高可用

② Mha pxc高可用 高并发

MySQL优化

标签:mysql优化   特性   更新   bsp   问题   时间   font   隐式   可用性   

原文地址:https://www.cnblogs.com/fanhuo/p/9867159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!