MySQL数据库优化

MySQL数据库优化是一项非常重要的工作,而且是一项长期的工作, MySQL优化三分靠配置文件及硬件资源的优化,七分靠SQL语句的优化。
MySQL数据库具体优化包括:配置文件的优化、SQL语句的优化、表结构的优化、索引的优化,而配置的优化包括:系统内核、硬件资源、内存、CPU、 MySQL本身配置文件的优化。
硬件上的优化有两种方式:一种是增加内存和提高磁盘读写速度,进而提高 MySQL数据库的查询、更新的速度;另一种提高 MySQL性能的方式是使用多块磁盘来存数可以从多块磁盘上并行读取数据,进而提高读取数据的速度MySQL参数的优化,内存中会为 MySQL保留部分的缓冲区,这些缓冲区可以提高MySQL.的速度,缓冲区的大小可以在 MySQL的配置文件中进行设置
以下为企业级 MySQL百万量级真实环境配置文件my.cnf的内容,用户可以根据实情况修改,代码如下:
[client]
port=3306
socket =/tmp/mysql. sock
[ mysqld]
mysql
server id= 10
port=3306
socket=/tmp/mysql. sock
datadir =/data/mysql/
old_passwords=1
lower_case_table_names=1
character-set- server=utf8
default- storage-engine=MYISAM
log-bin=bin. log
log-error=error log
pid-file= mysql. pid
long_ query_time=2
slow_query_log=ON
slow_query_log_file=slow.log
binlog_cache_size= 4MB
binlog_format=mixed
max_binlog_cache_size=16MB
max_binlog_size= 1GB
expire_logs_days= 30
ft_min_word_len =4
back_log=512
max_allowed_packet= 64MB
max_connections=4096
max_connect_errors= 100
join_buffer_size= 2MB
read_buffer_size= 2MB
read_rnd_buffer_size=2MB
sort_buffer_size= 2MB
query_cache_size= 64MB
table_open_cache= 10000
thread_cache_size=256
max_heap_table_size= 64MB
tmp_table_size=64MB
thread_stack=192KB
thread_concurrency=24
local-infile=0
skip-show-database
skip-name- resolve
skip-external-locking
connect_timeout=600
interactive_timeout=600
wait_timeout=600
#***MyISAM
key_buffer_size= 512MB
bulk_insert_buffer_size=64MB
myisam_sort_ buffer_size=64MB
myisam_max_sort_file_size=1GB
myisam_repair_threads=1
concurrent_insert= 2
myisam_recover

*** INNODB

innodb_buffer_pool_size= 64GB
innodb_additional_mem_pool_size= 32MB
innodb_data_file_path=ibdata1:1G; ibdata2: 1G:autoextend
innodb_read_io_threads=8
innodb_write_io_threads =8
innodb_file_per_table= 1
innodb_flush_log_at_trx_commit =2
innodb_lock_wait_timeout=120
innodb_log_buffer_size= 8MB
innodb_log_file_size=256MB
innodb_log_files_in_group =3
innodb_max_dirty_pages_ pct= 90
innodb_thread_concurrency =16
innodb_open_files =10000

*** innodb_force_recovery =4

*** Replication Slave

read-only
#skip- slave-start
relay-log= relay. log
log-slave-updates

你可能感兴趣的:(MySQL数据库优化)