mysql 优化日记

2019-01-03 14:43:13于海丽



thread_concurrency = 8该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8


skip-networking开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!

————————————————————————————————–
my.ini配置建议:

table_cache=1024
物理内存越大,设置就越大.默认为2402,调到512-1024最佳

innodb_additional_mem_pool_size=4M
默认为2M

innodb_flush_log_at_trx_commit=1
(设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1)

innodb_log_buffer_size=2M
默认为1M

innodb_thread_concurrency=8
你的服务器CPU有几个就设置为几,建议用默认一般为8

key_buffer_size=256M
默认为218 调到128最佳

tmp_table_size=64M
默认为16M 调到64-256最挂

read_buffer_size=4M
默认为64K

read_rnd_buffer_size=16M
默认为256K

sort_buffer_size=32M
默认为256K

max_connections=1024
默认为1210

thread_cache_size=120
默认为60

query_cache_size=32M


————————————————————————————————–

以下是另一个的my.ini配置建议:

port=3306
default-character-set=latin1
default-storage-engine=INNODB
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”

max_connections=120
query_cache_size=32M

#缓存数据表数量,设置这个参数可以参见系统状态中的 open_tables(表示当前打开的数据表总数) 和 opened_tables(表示所有打开的数据表总数)
table_cache=256

#临时表的大小
tmp_table_size=12M

#缓存可重用的线程数
thread_cache_size = 64

myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=64M

#这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理的值取决于索引大小、数据量以及负载 — #记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。
key_buffer_size=128M

read_buffer_size=1M
read_rnd_buffer_size=512K
sort_buffer_size=1M

#这对innodb表来说非常重要
innodb_buffer_pool_size = 256M

#这取决于你需要的回复速度.128M这个数值是适当的恢复时间和良好性能之间的一个好的平衡.
innodb_log_file_size = 128M

#大多数情况4M足够,除非正将很大的blob数据导入到Innodb中可以增加一点.
innodb_log_buffer_size=4M

#这个值取决于你的程序,可能高或者低.8是代表起始值.