分类: Mysql/postgreSQL
2008-02-01 12:25:12
Server调节从某种意义上是一种黑色艺术。本章仅仅介绍server配置的基本概念,涉及如下内容:
*编译和连接
*服务器参数
*其他参数的调节
对于服务器的调节,经验很重要,尽量一次只修改一个地方,之前之后都对性能进行测试,来验证修改是否切实提高了性能。
如果linux运行于奔腾的机器之上,使用pgcc会提大大提升性能。使用合适的编译器和选项一般都能提高性能10% to 30%,具体请参考手册。
编译时只添加你需要的字符集也会提高性能。12章中有讲字符集。
参考资料主要有: mysql手册,,
查看当前配置:
show variables;
查看状态
show status;
mytop工具类似top,还以深入MYSQL进程,查看现在正在执行的查询。
下载地址:
内存的分配很重要。内部buffers and caches,比如key_buffer_size and the table_cache.
key buffer用于存储MyISAM indexes。要考虑索引数据有多大 (that is, how big your
.MYI files are in total),一般设置为系统内存的20% and 50%,在只有mysql服务的情况下。这个值只针对MyISAM
tables.其他表类型有各自单独的参数。比如:innodb_buffer_pool_size,12章和mysql手册中有详细的描述。
table_cache限制可同时打开的表数。MyISAM中每个表和每个索引都是单独文件。打开和关闭文件是很慢的。所以这个值越大越好。不过要注意操作系统的限制。
除了这2个全局变量外,还有per-thread basis的内存,比如:the sort buffer and the read buffer. read_buffer_size扫描整个表的时候使用。sort buffer 用于排序。
Solaris 是推荐系统。支持多CPU,开发和初始测试也是基于它。硬盘建议使用RAID1或5。用SCSI代替IDE.日志文件系统,比如:Reiserfs or XFS。其他还有网络等。
There is an entire book's worth of material on MySQL optimization, so be sure to continue reading and researching for yourself.
· You may obtain a performance gain by compiling the MySQL binary yourself, especially if you are running Linux on a Pentium machine.
· Tune server parameters for a performance boost, particularly those relating to memory usage. More physical memory is always a good thing, but allocating it is more important. These are some particularly important parameters:
o key_buffer_size: Amount of memory used for storing MyISAM indexes.
o table_cache: Number of tables that can be open at once.
o read_buffer_size: Amount of memory used to store data from full table scans.
o sort_buffer: Amount of memory used to store table data to be sorted for ORDER BY.
· Tune hardware with more memory, use of RAID, use of a journaling file system, and a fast network between clients and servers and masters and slaves.
chinaunix网友2008-02-01 12:26:00
§17.5 习题 Quiz 1: The parameter that controls how much memory is used to store indexes for InnoDB is key_buffer_size innodb_buffer_pool_size innodb_key_buffer_size read_buffer_size 2: The parameter that controls how much memory is used to cache table data for InnoDB is key_buffer_size innodb_buffer_pool_size innodb_key_buffer_size read_buffer_size 3: The parameter that controls how much memory is used to cache table data for MyISAM is key_buffer_size tab