14 MySQL慢查询

①问题: 如何从一个大项目中,迅速的定位执行速度慢的语句(

show status;

+-----------------------------------------------+--------------+
| Variable_name                                 | Value        |
+-----------------------------------------------+--------------+
| Aborted_clients                               | 857          |
| Aborted_connects                              | 1820         |
| Binlog_cache_disk_use                         | 3            |
| Binlog_cache_use                              | 47355        |
| Binlog_stmt_cache_disk_use                    | 0            |
| Binlog_stmt_cache_use                         | 70           |
| Bytes_received                                | 376          |
| Bytes_sent                                    | 2768         |
| Com_admin_commands                            | 0            |
| Com_assign_to_keycache                        | 0            |
| Com_alter_db                                  | 0            |
| Com_alter_db_upgrade                          | 0            |
| Com_alter_event                               | 0            |
| Com_alter_function                            | 0            |
| Com_alter_procedure                           | 0            |
| Com_alter_server                              | 0            |
| Com_alter_table                               | 0            |
| Com_alter_tablespace                          | 0            |
| Com_alter_user                                | 0            |
| Com_analyze                                   | 0            |
| Com_begin                                     | 0            |
| Com_binlog                                    | 0            |
| Com_call_procedure                            | 0            |
| Com_change_db                                 | 1            |
| Com_change_master                             | 0            |
| Com_check                                     | 0            |
| Com_checksum                                  | 0            |
| Com_commit                                    | 0            |
| Com_create_db                                 | 0            |
| Com_create_event                              | 0            |
| Com_create_function                           | 0            |
| Com_create_index                              | 0            |
| Com_create_procedure                          | 0            |
| Com_create_server                             | 0            |
| Com_create_table                              | 0            |
| Com_create_trigger                            | 0            |
| Com_create_udf                                | 0            |
| Com_create_user                               | 0            |
| Com_create_view                               | 0            |
| Com_dealloc_sql                               | 0            |
| Com_delete                                    | 0            |
| Com_delete_multi                              | 0            |
| Com_do                                        | 0            |
| Com_drop_db                                   | 0            |
| Com_drop_event                                | 0            |
| Com_drop_function                             | 0            |
| Com_drop_index                                | 0            |
| Com_drop_procedure                            | 0            |
| Com_drop_server                               | 0            |
| Com_drop_table                                | 0            |
| Com_drop_trigger                              | 0            |
| Com_drop_user                                 | 0            |
| Com_drop_view                                 | 0            |
| Com_empty_query                               | 0            |
| Com_execute_sql                               | 0            |
| Com_flush                                     | 0            |
| Com_get_diagnostics                           | 0            |
| Com_grant                                     | 0            |
| Com_ha_close                                  | 0            |
| Com_ha_open                                   | 0            |
| Com_ha_read                                   | 0            |
| Com_help                                      | 0            |
| Com_insert                                    | 0            |
| Com_insert_select                             | 0            |
| Com_install_plugin                            | 0            |
| Com_kill                                      | 0            |
| Com_load                                      | 0            |
| Com_lock_tables                               | 0            |
| Com_optimize                                  | 0            |
| Com_preload_keys                              | 0            |
| Com_prepare_sql                               | 0            |
| Com_purge                                     | 0            |
| Com_purge_before_date                         | 0            |
| Com_release_savepoint                         | 0            |
| Com_rename_table                              | 0            |
| Com_rename_user                               | 0            |
| Com_repair                                    | 0            |
| Com_replace                                   | 0            |
| Com_replace_select                            | 0            |
| Com_reset                                     | 0            |
| Com_resignal                                  | 0            |
| Com_revoke                                    | 0            |
| Com_revoke_all                                | 0            |
| Com_rollback                                  | 0            |
| Com_rollback_to_savepoint                     | 0            |
| Com_savepoint                                 | 0            |
| Com_select                                    | 2            |
| Com_set_option                                | 1            |
| Com_signal                                    | 0            |
| Com_show_binlog_events                        | 0            |
| Com_show_binlogs                              | 0            |
| Com_show_charsets                             | 0            |
| Com_show_collations                           | 0            |
| Com_show_create_db                            | 0            |
| Com_show_create_event                         | 0            |
| Com_show_create_func                          | 0            |
| Com_show_create_proc                          | 0            |
| Com_show_create_table                         | 0            |
| Com_show_create_trigger                       | 0            |
| Com_show_databases                            | 0            |
| Com_show_engine_logs                          | 0            |
| Com_show_engine_mutex                         | 0            |
| Com_show_engine_status                        | 0            |
| Com_show_events                               | 0            |
| Com_show_errors                               | 0            |
| Com_show_fields                               | 0            |
| Com_show_function_code                        | 0            |
| Com_show_function_status                      | 0            |
| Com_show_grants                               | 0            |
| Com_show_keys                                 | 0            |
| Com_show_master_status                        | 0            |
| Com_show_open_tables                          | 0            |
| Com_show_plugins                              | 0            |
| Com_show_privileges                           | 0            |
| Com_show_procedure_code                       | 0            |
| Com_show_procedure_status                     | 0            |
| Com_show_processlist                          | 0            |
| Com_show_profile                              | 0            |
| Com_show_profiles                             | 0            |
| Com_show_relaylog_events                      | 0            |
| Com_show_slave_hosts                          | 0            |
| Com_show_slave_status                         | 0            |
| Com_show_status                               | 1            |
| Com_show_storage_engines                      | 0            |
| Com_show_table_status                         | 0            |
| Com_show_tables                               | 0            |
| Com_show_triggers                             | 0            |
| Com_show_variables                            | 0            |
| Com_show_warnings                             | 0            |
| Com_slave_start                               | 0            |
| Com_slave_stop                                | 0            |
| Com_stmt_close                                | 0            |
| Com_stmt_execute                              | 0            |
| Com_stmt_fetch                                | 0            |
| Com_stmt_prepare                              | 0            |
| Com_stmt_reprepare                            | 0            |
| Com_stmt_reset                                | 0            |
| Com_stmt_send_long_data                       | 0            |
| Com_truncate                                  | 0            |
| Com_uninstall_plugin                          | 0            |
| Com_unlock_tables                             | 0            |
| Com_update                                    | 0            |
| Com_update_multi                              | 0            |
| Com_xa_commit                                 | 0            |
| Com_xa_end                                    | 0            |
| Com_xa_prepare                                | 0            |
| Com_xa_recover                                | 0            |
| Com_xa_rollback                               | 0            |
| Com_xa_start                                  | 0            |
| Compression                                   | OFF          |
| Connection_errors_accept                      | 0            |
| Connection_errors_internal                    | 0            |
| Connection_errors_max_connections             | 0            |
| Connection_errors_peer_address                | 5            |
| Connection_errors_select                      | 0            |
| Connection_errors_tcpwrap                     | 0            |
| Connections                                   | 93538        |
| Created_tmp_disk_tables                       | 0            |
| Created_tmp_files                             | 231          |
| Created_tmp_tables                            | 0            |
| Delayed_errors                                | 0            |
| Delayed_insert_threads                        | 0            |
| Delayed_writes                                | 0            |
| Flush_commands                                | 1            |
| Handler_commit                                | 1            |
| Handler_delete                                | 0            |
| Handler_discover                              | 0            |
| Handler_external_lock                         | 2            |
| Handler_mrr_init                              | 0            |
| Handler_prepare                               | 0            |
| Handler_read_first                            | 1            |
| Handler_read_key                              | 1            |
| Handler_read_last                             | 0            |
| Handler_read_next                             | 0            |
| Handler_read_prev                             | 0            |
| Handler_read_rnd                              | 0            |
| Handler_read_rnd_next                         | 272432       |
| Handler_rollback                              | 0            |
| Handler_savepoint                             | 0            |
| Handler_savepoint_rollback                    | 0            |
| Handler_update                                | 0            |
| Handler_write                                 | 0            |
| Innodb_buffer_pool_dump_status                | not started  |
| Innodb_buffer_pool_load_status                | not started  |
| Innodb_buffer_pool_pages_data                 | 6665         |
| Innodb_buffer_pool_bytes_data                 | 109199360    |
| Innodb_buffer_pool_pages_dirty                | 0            |
| Innodb_buffer_pool_bytes_dirty                | 0            |
| Innodb_buffer_pool_pages_flushed              | 224366       |
| Innodb_buffer_pool_pages_free                 | 1024         |
| Innodb_buffer_pool_pages_misc                 | 502          |
| Innodb_buffer_pool_pages_total                | 8191         |
| Innodb_buffer_pool_read_ahead_rnd             | 0            |
| Innodb_buffer_pool_read_ahead                 | 60643        |
| Innodb_buffer_pool_read_ahead_evicted         | 597          |
| Innodb_buffer_pool_read_requests              | 464579038    |
| Innodb_buffer_pool_reads                      | 83120        |
| Innodb_buffer_pool_wait_free                  | 0            |
| Innodb_buffer_pool_write_requests             | 3500136      |
| Innodb_data_fsyncs                            | 221493       |
| Innodb_data_pending_fsyncs                    | 0            |
| Innodb_data_pending_reads                     | 0            |
| Innodb_data_pending_writes                    | 0            |
| Innodb_data_read                              | 2366541824   |
| Innodb_data_reads                             | 85303        |
| Innodb_data_writes                            | 326326       |
| Innodb_data_written                           | 7686260736   |
| Innodb_dblwr_pages_written                    | 224366       |
| Innodb_dblwr_writes                           | 32146        |
| Innodb_have_atomic_builtins                   | ON           |
| Innodb_log_waits                              | 0            |
| Innodb_log_write_requests                     | 579999       |
| Innodb_log_writes                             | 92128        |
| Innodb_os_log_fsyncs                          | 123073       |
| Innodb_os_log_pending_fsyncs                  | 0            |
| Innodb_os_log_pending_writes                  | 0            |
| Innodb_os_log_written                         | 318390272    |
| Innodb_page_size                              | 16384        |
| Innodb_pages_created                          | 13840        |
| Innodb_pages_read                             | 144308       |
| Innodb_pages_written                          | 224366       |
| Innodb_row_lock_current_waits                 | 0            |
| Innodb_row_lock_time                          | 58           |
| Innodb_row_lock_time_avg                      | 2            |
| Innodb_row_lock_time_max                      | 9            |
| Innodb_row_lock_waits                         | 25           |
| Innodb_rows_deleted                           | 108          |
| Innodb_rows_inserted                          | 768761       |
| Innodb_rows_read                              | 2513680333   |
| Innodb_rows_updated                           | 46782        |
| Innodb_num_open_files                         | 209          |
| Innodb_truncated_status_writes                | 0            |
| Innodb_available_undo_logs                    | 128          |
| Key_blocks_not_flushed                        | 0            |
| Key_blocks_unused                             | 6668         |
| Key_blocks_used                               | 60           |
| Key_read_requests                             | 20089675     |
| Key_reads                                     | 121          |
| Key_write_requests                            | 34           |
| Key_writes                                    | 13           |
| Last_query_cost                               | 55011.199000 |
| Last_query_partial_plans                      | 1            |
| Max_used_connections                          | 41           |
| Not_flushed_delayed_rows                      | 0            |
| Open_files                                    | 46           |
| Open_streams                                  | 0            |
| Open_table_definitions                        | 314          |
| Open_tables                                   | 126          |
| Opened_files                                  | 34185        |
| Opened_table_definitions                      | 0            |
| Opened_tables                                 | 0            |
| Performance_schema_accounts_lost              | 0            |
| Performance_schema_cond_classes_lost          | 0            |
| Performance_schema_cond_instances_lost        | 0            |
| Performance_schema_digest_lost                | 0            |
| Performance_schema_file_classes_lost          | 0            |
| Performance_schema_file_handles_lost          | 0            |
| Performance_schema_file_instances_lost        | 0            |
| Performance_schema_hosts_lost                 | 0            |
| Performance_schema_locker_lost                | 0            |
| Performance_schema_mutex_classes_lost         | 0            |
| Performance_schema_mutex_instances_lost       | 0            |
| Performance_schema_rwlock_classes_lost        | 0            |
| Performance_schema_rwlock_instances_lost      | 0            |
| Performance_schema_session_connect_attrs_lost | 0            |
| Performance_schema_socket_classes_lost        | 0            |
| Performance_schema_socket_instances_lost      | 0            |
| Performance_schema_stage_classes_lost         | 0            |
| Performance_schema_statement_classes_lost     | 0            |
| Performance_schema_table_handles_lost         | 0            |
| Performance_schema_table_instances_lost       | 136          |
| Performance_schema_thread_classes_lost        | 0            |
| Performance_schema_thread_instances_lost      | 0            |
| Performance_schema_users_lost                 | 0            |
| Prepared_stmt_count                           | 0            |
| Qcache_free_blocks                            | 1            |
| Qcache_free_memory                            | 1031360      |
| Qcache_hits                                   | 0            |
| Qcache_inserts                                | 0            |
| Qcache_lowmem_prunes                          | 0            |
| Qcache_not_cached                             | 449697       |
| Qcache_queries_in_cache                       | 0            |
| Qcache_total_blocks                           | 1            |
| Queries                                       | 4378247      |
| Questions                                     | 7            |
| Select_full_join                              | 0            |
| Select_full_range_join                        | 0            |
| Select_range                                  | 0            |
| Select_range_check                            | 0            |
| Select_scan                                   | 1            |
| Slave_heartbeat_period                        | 0.000        |
| Slave_last_heartbeat                          |              |
| Slave_open_temp_tables                        | 0            |
| Slave_received_heartbeats                     | 0            |
| Slave_retried_transactions                    | 0            |
| Slave_running                                 | OFF          |
| Slow_launch_threads                           | 0            |
| Slow_queries                                  | 0            |
| Sort_merge_passes                             | 0            |
| Sort_range                                    | 0            |
| Sort_rows                                     | 0            |
| Sort_scan                                     | 0            |
| Ssl_accept_renegotiates                       | 0            |
| Ssl_accepts                                   | 0            |
| Ssl_callback_cache_hits                       | 0            |
| Ssl_cipher                                    |              |
| Ssl_cipher_list                               |              |
| Ssl_client_connects                           | 0            |
| Ssl_connect_renegotiates                      | 0            |
| Ssl_ctx_verify_depth                          | 0            |
| Ssl_ctx_verify_mode                           | 0            |
| Ssl_default_timeout                           | 0            |
| Ssl_finished_accepts                          | 0            |
| Ssl_finished_connects                         | 0            |
| Ssl_server_not_after                          |              |
| Ssl_server_not_before                         |              |
| Ssl_session_cache_hits                        | 0            |
| Ssl_session_cache_misses                      | 0            |
| Ssl_session_cache_mode                        | NONE         |
| Ssl_session_cache_overflows                   | 0            |
| Ssl_session_cache_size                        | 0            |
| Ssl_session_cache_timeouts                    | 0            |
| Ssl_sessions_reused                           | 0            |
| Ssl_used_session_cache_entries                | 0            |
| Ssl_verify_depth                              | 0            |
| Ssl_verify_mode                               | 0            |
| Ssl_version                                   |              |
| Table_locks_immediate                         | 899684       |
| Table_locks_waited                            | 0            |
| Table_open_cache_hits                         | 1            |
| Table_open_cache_misses                       | 0            |
| Table_open_cache_overflows                    | 0            |
| Tc_log_max_pages_used                         | 0            |
| Tc_log_page_size                              | 0            |
| Tc_log_page_waits                             | 0            |
| Threads_cached                                | 6            |
| Threads_connected                             | 6            |
| Threads_created                               | 354          |
| Threads_running                               | 2            |
| Uptime                                        | 4473505      |
| Uptime_since_flush_status                     | 4473505      |
+-----------------------------------------------+--------------+
341 rows in set
  • 查询MySQL已经启动的时间

mysql> show status like 'uptime';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Uptime        | 4473534 |
+---------------+---------+
1 row in set
  • 查询执行了多少update/insert/select/delete操作

    -- 如果你不写  [session|global] 默认是session 会话,指取出当前窗口的执行,如果你想看所有(从mysql 启动到现在,则应该 global)
    mysql> show status like 'com_select';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Com_select    | 2     |
    +---------------+-------+
    1 row in set

    mysql> show global status like 'com_select';
    +---------------+--------+
    | Variable_name | Value  |
    +---------------+--------+
    | Com_select    | 495931 |
    +---------------+--------+
    1 row in set
    
  • 查看MySQL有多少连接

    mysql> show status like 'connections'; 
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Connections   | 93561 |
    +---------------+-------+
    1 row in set
  • 显示慢查询次数

    show global status like 'slow_queries';

②如何去定位慢查询

查看慢查询是否开启

mysql> show variables like '%slow_query_log%';
+---------------------+------------------------------+
| Variable_name       | Value                        |
+---------------------+------------------------------+
| slow_query_log      | OFF                          |
| slow_query_log_file | /var/lib/mysql/root-slow.log |
+---------------------+------------------------------+
2 rows in set (0.00 sec)

开启慢查询(只对当前数据库生效,重启则失效)

mysql> set global slow_query_log = 1;
Query OK, 0 rows affected
修改后需重新打开窗口

mysql> show variables like '%slow_query_log%';
+---------------------+------------------------------+
| Variable_name       | Value                        |
+---------------------+------------------------------+
| slow_query_log      | ON                           |
| slow_query_log_file | /var/lib/mysql/root-slow.log |
+---------------------+------------------------------+
2 rows in set (0.00 sec)

# 如要永久生效需修改my.cnf文件(不建议开启,影响性能)
    slow_query_log = 1;
    slow_query_log_file = /var/lib/mysql/root-slow.log
    long_query_time=1
    log_output = FILE

显示当前慢查询时间

show variables like 'long_query_time' ; 

修改慢查询时间

set global long_query_time=1 ;
修改后需重新打开窗口

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set

③这时我们如果出现一条语句执行时间超过1秒中,就会统计到.

④测试,可以看到在日志中就记录下我们的mysql慢sql语句.

mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.00 sec)

# 此时慢查询时间为1秒,上面SQL沉睡2秒,应当被记录

[root@root mysql]# pwd
/var/lib/mysql

[root@root mysql]# cat root-slow.log
/usr/sbin/mysqld, Version: 5.5.54-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
/usr/sbin/mysqld, Version: 5.5.54-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 171229  0:20:39
# User@Host: root[root] @ localhost []
# Query_time: 2.000641  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1514478039;
select sleep(2);

⑤ 慢查询常用命令

# 得到记录集最多的10条SQL
    mysqldumpslow -s r -t 10 /var/lib/mysql/root-slow.log

# 得到访问次数最多的10条SQL
    mysqldumpslow -s c -t 10 /var/lib/mysql/root-slow.log

# 得到按时间排序的前10条含左连接的查询SQL
    mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/root-slow.log


# 为防止爆屏现象,命令应结合|和more使用
    mysqldumpslow -s c -t 10 /var/lib/mysql/root-slow.log | more

你可能感兴趣的:(14 MySQL慢查询)