mysql数据库sql性能报告_Mysql数据库SQL性能优化

数据库是组成Web项目最重要的部分之一,所以数据中执行的sql语句的效率会影响整个项目的性能,为了提高sql语句的执行效率就需要对sql语句进行相关的优化,MySQL数据库因为其开源免费的特点是目前使用最广泛的数据库之一,下面对mysql数据库的SQL优化提出几点看法:

1、在数据库建表的时候要考虑下面几个影响性能的要素:

a.主键使用合适的unsigned整型类型,并设置自增避免数据增加时索引页分裂;

b.选择合适的字符串数据类型和日期类型, 优先使用TIMESTAMP,因为仅占用4字节;

c.长度固定的字符串字段使用char类型,varchar会额外使用1或者2个字节存储字符串长度(长度小于255使用1字节)。

d.能使用整数类型的就尽量不要使用字符串类型。

2、在数据库建索引的时候要考虑下面几个影响性能的要素:

a.尽量使用单独的列,不对索引进行表达式或者函数运算

b.对于TEXT、BLOB或者很长的varchar类型的列,使用前缀索引

c.多列索引选择合适的索引列顺序

d.能使用覆盖索引的使用覆盖索引、使用索引排序

e.索引列字段应不为NULL, 否则会导致索引失效

f.索引保持在5条左右,过多会影响插入和更新性能

3、在数据库使用查询语句时候要考虑下面几个影响性能的要素:

a.使用查询语句要避免索引失效

b.使用explain查询SQL优化器执行计划,调整SQL查询

c.使用not exists代替not in,not in不会使用索引

d.查询条件避免使用前导模糊查询,如'%xxx',因为无法使用索引

e.查询条件使用or的话,要保证or两边的列都要有索引,否则索引失效

f.查询只需要一条记录时使用limit 1, 避免全表扫描

g.字符串类型字段为数字字符串时,在where条件中要加单引号,否则索引失效,因为这样MySQL会将表中字符串类型转换为数字之后再比较,导致索引失效

h.多列索引要满足最左前缀要求

i. is null判断不走索引,要慎用

j. LIMIT分页的页码不能太大,会查询出所有的结果然后丢弃掉不需要的。使用主键做连接查询

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值