MySQL作为全球最受欢迎的关系型数据库管理系统之一,其性能优化和查询效率一直是DBA和开发者关注的核心问题。以下是几个经典的MySQL性能查询SQL,可帮助快速定位问题、提高效率,并为初学者提供学习参考:1. 查看当前应用连接:使用information_schema.processlist表获取所有连接信息,包括用户、IP、连接数和当前数据库。这有助于发现异常或高连接数问题。2. 查看表结构和行数:利用information_schema.tables表获取表的数据库名、表名和行数,有助于决定是否需要添加索引或进行性能优化。3. 检查表碎片:通过information_schema.tables表中的DATA_LENGTHDATA_FREE字段分析表的大小和空闲空间,判断是否需要碎片整理或压缩以释放物理空间。4. 查找未提交事务:结合information_schema.innodb_trxinformation_schema.processlist,查找运行中但未提交的事务,这可能导致锁问题。5. 查看当前锁状态:使用information_schema.innodb_locks显示当前所有锁定信息。6. 查看锁等待情况:通过information_schema.innodb_lock_waits显示被阻塞的事务及其等待的锁。7. 详细锁等待信息:此查询提供有关锁的更多信息,如事务ID、锁类型、模式和等待时间,有助于深入理解锁冲突。8. 查看InnoDB引擎状态:使用show engine innodb status输出包含最近的死锁、检查点和缓冲池信息,用于诊断InnoDB相关性能问题。9. 过滤并显示非睡眠状态进程:通过pagergrep命令,只显示正在执行任务的进程,而不是等待或睡眠状态的。10. 查看当前详细运行SQLINFORMATION_SCHEMA.PROCESSLIST表的info字段包含当前正在执行的SQL语句,对监控和调试非常有帮助。11. 开启SQL执行阶段的Profiling:使用set global profiling = 1开启SQL执行阶段的分析,有助于优化查询性能。