项目后期如何优化数据库

一、开启慢查询日志

慢查询日志是mysql数据库提供一种记录所有执行时间超过指定时间的sql语句,然后我们可以通过日志里的sql语句进行分析、优化。通俗的点说,就是开启慢查询日志,我们就可以定位到有性能瓶颈的地方,进而进行优化。

首先查看慢查询日志配置信息:
show variables like 'slow_query%'; 查看是否开启 以及保存日志的路径
show variables like 'long_query_time'; 查询超过多少秒才记录日志

如果没有开启,或者修改路径及秒速设置:
修改配置文件
假如你不知道你的配置文件.wamp环境下D:\wamp\bin\mysql\mysql5.6.17\my.ini;Linux下一般在/etc/my.cnf。开启慢查询日志功能,同时设置慢查询日志文件的路径以及时间限制。

[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1

记得重启MySQL

分析:一般慢sql可能是因为

1、数据量巨大

  • 读写分离

    在框架里可以配置多个MySQL主机。根据SQL来选择不同的主机。当主服务器进行了增删改,便会生成日志(binlog)主动推送给两台”从”服务器
  • 分库
    -读写分离 也是分库的一种
    -把不活跃的数据 分离到其它库
  • 分表
    -垂直分表
    垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。这时需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系

    -水平分表
    水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放

2、查询导致索引失效

3、表的字段较多,使用select时,要什么只显示什么

4、多表关联

-考虑反范式设计,适当冗余字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值