select * from 语句执行很慢,innodb io读取速度低

Mat*_*Suo 8 mysql innodb performance

我在我的服务器中运行了一个非常简单的查询“ select * from ap_statistic ”。服务器具有相同的硬件和软件配置(CPU 8 核,内存:32G,操作系统:redhat 5.5,mysql 版本:5.1)并运行相同的应用程序。在服务器A中,表ap_statistic的行号约为22512379,在服务器B中,表的行号为41438751。当然在服务器A上运行的查询比服务器B更快,但奇怪的是查询服务器 B 非常慢,需要 3 个多小时,而在服务器 A 中只需要 10 分钟。

我使用一些工具监控系统状态,发现在服务器A运行查询时,系统IO读取速度约为20~30M/s,而在服务器B为2~3M/s。我尝试清理 linux 缓存并重新启动 mysql 服务器,结果都是一样的。而且我尝试将DB从服务器B恢复到服务器A,所以服务器A中的查询非常非常慢,io读取速度非常慢。我想知道为什么会这样?

服务器A的ap_statistic表数据是正常运行生成的,服务器B的表数据是存储过程生成的。表方案是:

CREATE TABLE `ap_statistic` (
  `ap_statisticId` BIGINT(20) UNSIGNED NOT NULL,
  `deviceId` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `macaddress` VARCHAR(100) DEFAULT NULL,
  `check_time` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
  `ap_count` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  `wlan` VARCHAR(64) DEFAULT NULL,
  `radio` VARCHAR(50) DEFAULT NULL,
  `bssid` VARCHAR(32) DEFAULT NULL,
  `zd_ap_name` VARCHAR(64) DEFAULT NULL,
  `channel` INT(2) DEFAULT NULL,
  `uplinkRSSI` INT(3) DEFAULT '0',
  `downlinkRSSI` INT(3) DEFAULT '0',
  `txBytes` BIGINT(20) DEFAULT '0',
  `rxBytes` BIGINT(20) DEFAULT '0',
  `txPkts` BIGINT(20) DEFAULT '0',
  `rxPkts` BIGINT(20) DEFAULT '0',
  `hops` INT(1) DEFAULT '0',
  `numDownlink` INT(3) DEFAULT '0',
  `distance` INT(4) DEFAULT '0',
  `phyerr` INT(11) DEFAULT '0',
  `max_num_clients` INT(3) DEFAULT '0',
  `max_mesh_downlinks` INT(1) DEFAULT '0',
  `airtime` INT(3) DEFAULT '0',
  `uptimePercentage` INT(3) DEFAULT '0',
  `total_num_clients` INT(3) DEFAULT '0',
  `tx_actual_throughput` BIGINT(20) DEFAULT '0',
  `rx_actual_throughput` BIGINT(20) DEFAULT '0',
  `tunnelMode` VARCHAR(32) DEFAULT NULL,
  `externalIp` VARCHAR(64) DEFAULT NULL,
  `externalPort` VARCHAR(32) DEFAULT NULL,
  `level` INT(1) DEFAULT '1' 
  `essid` VARCHAR(64) DEFAULT NULL,
  `total_client_join` INT(11) DEFAULT '0',
  PRIMARY KEY (`ap_statisticId`),
  KEY `check_time` (`check_time`),
  KEY `macaddress` (`macaddress`),
  KEY `deviceId` (`deviceId`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

以下是表文件信息和监控工具的一些输出

服务器B

  -rw-rw---- 1 mysql mysql 18568183808 Oct 11 14:52 ap_statistic.ibd

  [root@localhost itms]# filefrag ./ap_statistic.ibd
  ./ap_statistic.ibd: 164 extents found, perfection would be 159 extents


    TABLE         Non_unique  Key_name    Seq_in_index  Column_name     COLLATION  Cardinality  Sub_part  Packed  NULL    Index_type  COMMENT
    ------------  ----------  ----------  ------------  --------------  ---------  -----------  --------  ------  ------  ----------  -------
    ap_statistic           0  PRIMARY                1  ap_statisticId  A             41438751    (NULL)  (NULL)          BTREE              
    ap_statistic           1  check_time             1  check_time      A                10320    (NULL)  (NULL)          BTREE              
    ap_statistic           1  macaddress             1  macaddress      A                   16    (NULL)  (NULL)  YES     BTREE              
    ap_statistic           1  deviceId               1  deviceId        A                   16    (NULL)  (NULL)          BTREE    


  mysql>show status;

        Variable_name   Value
        Aborted_clients 0
        Aborted_connects    0
        Binlog_cache_disk_use   0
        Binlog_cache_use    0
        Bytes_received  1256
        Bytes_sent  8844
        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_analyze 0
        Com_backup_table    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_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_load_master_data    0
        Com_load_master_table   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_restore_table   0
        Com_revoke  0
        Com_revoke_all  0
        Com_rollback    0
        Com_rollback_to_savepoint   0
        Com_savepoint   0
        Com_select  1
        Com_set_option  3
        Com_show_authors    0
        Com_show_binlog_events  0
        Com_show_binlogs    0
        Com_show_charsets   0
        Com_show_collations 0
        Com_show_column_types   0
        Com_show_contributors   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   1
        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 1
        Com_show_function_status    0
        Com_show_grants 0
        Com_show_keys   1
        Com_show_master_status  0
        Com_show_new_master 0
        Com_show_open_tables    0
        Com_show_plugins    0
        Com_show_privileges 0
        Com_show_procedure_status   0
        Com_show_processlist    0
        Com_show_profile    0
        Com_show_profiles   0
        Com_show_slave_hosts    0
        Com_show_slave_status   0
        Com_show_status 21
        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 ON
        Connections 323
        Created_tmp_disk_tables 1
        Created_tmp_files   5
        Created_tmp_tables  2
        Delayed_errors  0
        Delayed_insert_threads  0
        Delayed_writes  0
        Flush_commands  1
        Handler_commit  1
        Handler_delete  0
        Handler_discover    0
        Handler_prepare 0
        Handler_read_first  0
        Handler_read_key    0
        Handler_read_next   0
        Handler_read_prev   0
        Handler_read_rnd    0
        Handler_read_rnd_next   39
        Handler_rollback    0
        Handler_savepoint   0
        Handler_savepoint_rollback  0
        Handler_update  0
        Handler_write   37
        Innodb_buffer_pool_pages_data   43392
        Innodb_buffer_pool_pages_dirty  0
        Innodb_buffer_pool_pages_flushed    43822
        Innodb_buffer_pool_pages_free   637198
        Innodb_buffer_pool_pages_misc   562
        Innodb_buffer_pool_pages_total  681152
        Innodb_buffer_pool_read_ahead_rnd   9
        Innodb_buffer_pool_read_ahead_seq   27
        Innodb_buffer_pool_read_requests    36489397
        Innodb_buffer_pool_reads    27421
        Innodb_buffer_pool_wait_free    0
        Innodb_buffer_pool_write_requests   4165371
        Innodb_data_fsyncs  5228
        Innodb_data_pending_fsyncs  0
        Innodb_data_pending_reads   1
        Innodb_data_pending_writes  0
        Innodb_data_read    626216960
        Innodb_data_reads   36565
        Innodb_data_writes  293947
        Innodb_data_written 1792826880
        Innodb_dblwr_pages_written  43822
        Innodb_dblwr_writes 830
        Innodb_log_waits    0
        Innodb_log_write_requests   492588
        Innodb_log_writes   268248
        Innodb_os_log_fsyncs    2130
        Innodb_os_log_pending_fsyncs    0
        Innodb_os_log_pending_writes    0
        Innodb_os_log_written   356559872
        Innodb_page_size    16384
        Innodb_pages_created    5304
        Innodb_pages_read   38087
        Innodb_pages_written    43822
        Innodb_row_lock_current_waits   0
        Innodb_row_lock_time    0
        Innodb_row_lock_time_avg    0
        Innodb_row_lock_time_max    0
        Innodb_row_lock_waits   0
        Innodb_rows_deleted 28637
        Innodb_rows_inserted    306449
        Innodb_rows_read    16579740
        Innodb_rows_updated 887251
        Key_blocks_not_flushed  0
        Key_blocks_unused   212928
        Key_blocks_used 1415
        Key_read_requests   393323
        Key_reads   16
        Key_write_requests  102461
        Key_writes  102439
        Last_query_cost 9142769.199000
        Max_used_connections    19
        Not_flushed_delayed_rows    0
        Open_files  24
        Open_streams    0
        Open_table_definitions  142
        Open_tables 146
        Opened_files    592
        Opened_table_definitions    0
        Opened_tables   0
        Prepared_stmt_count 0
        Qcache_free_blocks  0
        Qcache_free_memory  0
        Qcache_hits 0
        Qcache_inserts  0
        Qcache_lowmem_prunes    0
        Qcache_not_cached   0
        Qcache_queries_in_cache 0
        Qcache_total_blocks 0
        Queries 1578897
        Questions   30
        Rpl_status  NULL
        Select_full_join    0
        Select_full_range_join  0
        Select_range    0
        Select_range_check  0
        Select_scan 2
        Slave_open_temp_tables  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_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   1549525
        Table_locks_waited  0
        Tc_log_max_pages_used   0
        Tc_log_page_size    0
        Tc_log_page_waits   0
        Threads_cached  0
        Threads_connected   17
        Threads_created 322
        Threads_running 2
        Uptime  8093
        Uptime_since_flush_status   8093

        mysql>show variables;

        Variable_name   Value
        auto_increment_increment    1
        auto_increment_offset   1
        autocommit  ON
        automatic_sp_privileges ON
        back_log    50
        big_tables  OFF
        binlog_cache_size   32768
        binlog_direct_non_transactional_updates OFF
        binlog_format   STATEMENT
        bulk_insert_buffer_size 8388608
        character_set_client    utf8
        character_set_connection    utf8
        character_set_database  utf8
        character_set_filesystem    binary
        character_set_results   utf8
        character_set_server    utf8
        character_set_system    utf8
        collation_connection    utf8_general_ci
        collation_database  utf8_general_ci
        collation_server    utf8_general_ci
        completion_type 0
        concurrent_insert   1
        connect_timeout 10
        date_format %Y-%m-%d
        datetime_format %Y-%m-%d %H:%i:%s
        default_week_format 0
        delay_key_write ON
        delayed_insert_limit    100
        delayed_insert_timeout  300
        delayed_queue_size  1000
        div_precision_increment 4
        engine_condition_pushdown   ON
        error_count 0
        event_scheduler OFF
        expire_logs_days    0
        flush   OFF
        flush_time  0
        foreign_key_checks  ON
        ft_boolean_syntax   + -><()~*:""&|
        ft_max_word_len 84
        ft_min_word_len 4
        ft_query_expansion_limit    20
        ft_stopword_file    (built-in)
        general_log OFF
        group_concat_max_len    1024
        have_community_features YES
        have_compress   YES
        have_crypt  YES
        have_csv    YES
        have_dynamic_loading    YES
        have_geometry   YES
        have_innodb YES
        have_ndbcluster NO
        have_openssl    DISABLED
        have_partitioning   NO
        have_query_cache    YES
        have_rtree_keys YES
        have_ssl    DISABLED
        have_symlink    YES
        hostname    localhost.localdomain
        identity    0
        ignore_builtin_innodb   OFF
        init_connect    
        init_file   
        init_slave  
        innodb_adaptive_hash_index  ON
        innodb_additional_mem_pool_size 67108864
        innodb_autoextend_increment 8
        innodb_autoinc_lock_mode    1
        innodb_buffer_pool_size 11159994368
        innodb_checksums    ON
        innodb_commit_concurrency   0
        innodb_concurrency_tickets  500
        innodb_data_file_path   ibdata1:10M:autoextend
        innodb_data_home_dir    
        innodb_doublewrite  ON
        innodb_fast_shutdown    1
        innodb_file_io_threads  4
        innodb_file_per_table   ON
        innodb_flush_log_at_trx_commit  2
        innodb_flush_method O_DIRECT
        innodb_force_recovery   0
        innodb_lock_wait_timeout    120
        innodb_locks_unsafe_for_binlog  ON
        innodb_log_buffer_size  134217728
        innodb_log_file_size    5242880
        innodb_log_files_in_group   2
        innodb_log_group_home_dir   ./
        innodb_max_dirty_pages_pct  90
        innodb_max_purge_lag    0
        innodb_mirrored_log_groups  1
        innodb_open_files   300
        innodb_rollback_on_timeout  OFF
        innodb_stats_on_metadata    ON
        innodb_support_xa   ON
        innodb_sync_spin_loops  20
        innodb_table_locks  ON
        innodb_thread_concurrency   8
        innodb_thread_sleep_delay   10000
        innodb_use_legacy_cardinality_algorithm ON
        insert_id   0
        interactive_timeout 28800
        join_buffer_size    268435456
        keep_files_on_create    OFF
        key_buffer_size 268435456
        key_cache_age_threshold 300
        key_cache_block_size    1024
        key_cache_division_limit    100         
        large_files_support ON
        large_page_size 0
        large_pages OFF
        last_insert_id  0
        lc_time_names   en_US
        license Commercial
        local_infile    ON
        locked_in_memory    OFF
        log OFF
        log_bin OFF
        log_bin_trust_function_creators OFF
        log_bin_trust_routine_creators  OFF         
        log_output  FILE
        log_queries_not_using_indexes   OFF
        log_slave_updates   OFF
        log_slow_queries    OFF
        log_warnings    1
        long_query_time 10.000000
        low_priority_updates    OFF
        lower_case_file_system  OFF
        lower_case_table_names  1
        max_allowed_packet  134217728
        max_binlog_cache_size   18446744073709547520
        max_binlog_size 1073741824
        max_connect_errors  10
        max_connections 300
        max_delayed_threads 20
        max_error_count 64
        max_heap_table_size 268435456
        max_insert_delayed_threads  20
        max_join_size   18446744073709551615
        max_length_for_sort_data    1024
        max_prepared_stmt_count 16382
        max_relay_log_size  0
        max_seeks_for_key   18446744073709551615
        max_sort_length 1024
        max_sp_recursion_depth  0
        max_tmp_tables  32
        max_user_connections    0
        max_write_lock_count    18446744073709551615
        min_examined_row_limit  0
        multi_range_count   256
        myisam_data_pointer_size    6
        myisam_max_sort_file_size   9223372036853727232
        myisam_mmap_size    18446744073709551615
        myisam_recover_options  OFF
        myisam_repair_threads   1
        myisam_sort_buffer_size 8388608
        myisam_stats_method nulls_unequal
        myisam_use_mmap OFF
        net_buffer_length   16384
        net_read_timeout    30
        net_retry_count 10
        net_write_timeout   60
        new OFF
        old OFF
        old_alter_table OFF
        old_passwords   OFF
        open_files_limit    10240
        optimizer_prune_level   1
        optimizer_search_depth  62
        optimizer_switch    index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on
        port    3306
        preload_buffer_size 32768
        profiling   OFF
        profiling_history_size  15
        protocol_version    10
        pseudo_thread_id    18
        query_alloc_block_size  8192
        query_cache_limit   1048576
        query_cache_min_res_unit    4096
        query_cache_size    0
        query_cache_type    ON
        query_cache_wlock_invalidate    OFF
        query_prealloc_size 8192
        rand_seed1  
        rand_seed2  
        range_alloc_block_size  4096
        read_buffer_size    67108864
        read_only   OFF
        read_rnd_buffer_size    67108864
        relay_log   
        relay_log_index 
        relay_log_info_file relay-log.info
        relay_log_purge ON
        relay_log_space_limit   0
        report_host 
        report_password 
        report_port 3306
        report_user 
        rpl_recovery_rank   0
        secure_auth OFF
        secure_file_priv    
        server_id   0
        skip_external_locking   ON
        skip_name_resolve   ON
        skip_networking OFF
        skip_show_database  OFF
        slave_compressed_protocol   OFF
        slave_exec_mode STRICT
        slave_net_timeout   3600
        slave_skip_errors   OFF
        slave_transaction_retries   10
        slow_launch_time    2
        slow_query_log  OFF
        sort_buffer_size    16777216
        sql_auto_is_null    ON
        sql_big_selects ON
        sql_big_tables  OFF
        sql_buffer_result   OFF
        sql_log_bin ON
        sql_log_off OFF
        sql_log_update  ON
        sql_low_priority_updates    OFF
        sql_max_join_size   18446744073709551615
        sql_mode    
        sql_notes   ON
        sql_quote_show_create   ON
        sql_safe_updates    OFF
        sql_select_limit    18446744073709551615
        sql_slave_skip_counter  
        sql_warnings    OFF
        ssl_ca  
        ssl_capath  
        ssl_cert    
        ssl_cipher