做网站界面设计注意什么,江苏宿迁房产网,企业官网设计规范,网站运营培训班什么是慢查询、长事务 #xff1f;慢查询 是指一条 SQL 的执行时间太长。比如在一个有100w条数据的表中#xff0c;查询一条数据时未命中索引#xff0c;从而通过全表扫描查询数据#xff0c;这个查询会耗时很长。这就是一个 Long SQL 。类似#xff0c;更新数据、删除数据…什么是慢查询、长事务 慢查询 是指一条 SQL 的执行时间太长。比如在一个有100w条数据的表中查询一条数据时未命中索引从而通过全表扫描查询数据这个查询会耗时很长。这就是一个 Long SQL 。类似更新数据、删除数据也可能出现慢查询 。长事务是指事务开启后长时间未结束(commit或者rollback都没执行)。出现长事务的原因有很多例如事务中有一个慢查询就是忘记结束事务了一个长事务中锁住了一些资源导致其他需要该资源的事务也变成长事务。很多情况下慢查询和长事务会对业务产生很大的负面影响业务响应太慢。连接数暴涨。如何发现慢查询 方法1使用 show processlist 查看MySQL 线程情况若有 Command 为 Query Time 很大的线程在列表中那么这个线程就是在执行一个慢查询。Info 字段能看出来对应的 SQL 。select * from information_schema.processlist 效果和 show processlist 相同。示例方法2开启慢查询日志实时解析日志内容。略。如何处理不可接受的慢查询如果慢查询在意料之中可接受那么不用处理。否则应该干掉此次的慢查询。使用 kill id 是 show processlist 返回的 Id 。优化SQL、索引等防止再次出现慢查询。如何发现长事务查询结果中idle_time 过大的事务就是长事务。输出结果中 trx_mysql_thread_id 是对应的线程标识。如何干掉长事务方案1从 INFORMATION_SCHEMA.INNODB_TRX 得到的长事务信息中有对应的线程标识 kill 掉即可。方案2设置较小的 wait_timeout 可以干掉部分长事务。对于业务代码使用的是非交互模式的连接可以使用 wait_timeout 设置超时时间。相当于若某个连接在 wait_timeout 这个时间范围内是空闲的MySQL 服务器会自动关闭连接。注意数据库连接池参数要根据情况调整下。