大幅优化MySQL查询性能的奇技淫巧

2019-01-05 09:49:23于丽
max_connections=4000
 key_buffer_size=200M
 low_priority_updates=1
 table_open_cache = 8000
 back_log=1500
 query_cache_type=0
 table_open_cache_instances=16

# files
 innodb_file_per_table
 innodb_log_file_size=1024M
 innodb_log_files_in_group = 3
 innodb_open_files=4000

# buffers
 innodb_buffer_pool_size=32000M
 innodb_buffer_pool_instances=32
 innodb_additional_mem_pool_size=20M
 innodb_log_buffer_size=64M
 join_buffer_size=32K
 sort_buffer_size=32K

# innodb
 innodb_checksums=0
 innodb_doublewrite=0
 innodb_support_xa=0
 innodb_thread_concurrency=0
 innodb_flush_log_at_trx_commit=2
 innodb_max_dirty_pages_pct=50
 innodb_use_native_aio=1
 innodb_stats_persistent = 1
 innodb_spin_wait_delay= 6 / 96

# perf special
 innodb_adaptive_flushing = 1
 innodb_flush_neighbors = 0
 innodb_read_io_threads = 4
 innodb_write_io_threads = 4
 innodb_io_capacity = 4000
 innodb_purge_threads=1
 innodb_adaptive_hash_index=0

# monitoring
 innodb_monitor_enable = '%'
 performance_schema=OFF


如果你需要的话,Linux Sysbench的二进制版本在这里:

    Sysbench-0.4.13-lux86     Sysbench-0.4.8-lux86


使用UNIX socket来运行Point-Selects测试的Sysbench命令如下(在parallel中启动8个进程):

LD_PRELOAD=/usr/lib64/libjemalloc.so /BMK/sysbench-0.4.8 --num-threads=$1 --test=oltp --oltp-table-size=10000000
        --oltp-dist-type=uniform --oltp-table-name=sbtest_10M_$n
        --max-requests=0 --max-time=$2 --mysql-socket=/SSD_raid0/mysql.sock
        --mysql-user=dim --mysql-password=dim --mysql-db=sysbench
        --mysql-table-engine=INNODB  --db-driver=mysql
        --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0
        --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-skip-trx=on
        --oltp-read-only=on run  > /tmp/test_$n.log &


使用IP端口来运行Point-Selects测试的Sysbench命令如下(在parallel中启动8个进程):

LD_PRELOAD=/usr/lib64/libjemalloc.so /BMK/sysbench-0.4.13 --num-threads=$1 --test=oltp --oltp-table-size=10000000
        --oltp-dist-type=uniform --oltp-table-name=sbtest_10M_$n
        --max-requests=0 --max-time=$2 --mysql-host=127.0.0.1 --mysql-port=5700
        --mysql-user=dim --mysql-password=dim --mysql-db=sysbench
        --mysql-table-engine=INNODB  --db-driver=mysql
        --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0
        --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-skip-trx=on
        --oltp-read-only=on run  > /tmp/test_$n.log &