1、慢查询日志
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。
默认情况下,MySQL数据库没有开启慢查询日志 ,需要我们手动来设置这个参数。
当然,如果不是调优需要的话,一般不建议启动该参数 ,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件 。
查看是否开启:SHOW VARIABLES LIKE '%slow_query_log%';
开启:使用set global slow_query_log=1,开启了慢查询日志 只对当前数据库生效。
设置慢的阙值时间:set long_query_time=1
查看当前多少秒算慢:SHOW VARIABLES LIKE 'long_query_time%';
MySQL提供了日志分析工具mysqldumpslow,使用这个命令可以进行具体分析。
2、视图
将一段查询sql封装为一个虚拟的表。 这个虚拟表只保存了sql逻辑,不会保存任何查询结果。
使用场景:很多地方可以共用的一组查询结果;报表
语法:
创建:
CREATE VIEW view_name
AS
SELECT column_name(s)
FROM table_name
WHERE condition
查询:
select * from view_name
更新:
CREATE OR REPLACE VIEW view_name
AS
SELECT column_name(s)
FROM table_name
WHERE condition
3、主从复制
slave会从master读取binlog来进行数据同步
步骤:
1)master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events
2)slave将master的binary log events拷贝到它的中继日志(relay log)
3)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的
复制的最大问题是延时。