大事务也会导致日志写入时出现壅闭,这种环境下会强制触发刷盘机制,大事务的日志需要壅闭到有足够的空间时,才能继承写入日志到缓冲区,这也可能会引起线上出现壅闭,可通过show status like 'innodb_log_waits';检察是否有大事务由于redo_log_buffer不足,而在等候写入日志。
尽量避免深分页的环境:select * from test limit 100000,10在MySQL的现实执行过程中,起首会查询出100010条数据,然后丢弃掉前面的10W条数据,将末了的10条数据返回;
优化器不一定能够正确选择,最幸亏编写sql时思量好;假设有a(1000条数据)、b(10条数据)两张表,select * from a as t1 left join b as t2 on t1.id = t2.id;会循环1000次查询数据,而select * from b as t1 left join a as t2 on t1.id = t2.id;只需要循环十次;