Moh*_*san 3 mysql php performance myisam drupal
我正在准备一个基于 Drupal 6.x 的大型安装,并设置了一个具有 8GB RAM 的专用 MySQL 服务器。Drupal 6.x 仅使用 MyISAM 引擎,将有大约 500 个并发用户通过两个 Web 节点使用该站点。
这是 mysql 调优入门分析的转储,我是一大早拿的,因为我不确定这是否应该在高使用率期间运行:http : //pastie.org/3279741。
我在 mysql 配置方面不是很有经验,所以我正在寻找帮助来确定 my.cnf 文件的正确配置,以便我能够承受负载量。我非常迫切地需要这个,所以不要寻找理解的资源(至少现在不是!)。
提前致谢!
小智 10
我不知道drupal。但是正如您所问的,您需要专用的 MyIsam MySql 配置。对于 MyIsam 我有一些建议
key_buffer_size
Run Code Online (Sandbox Code Playgroud)
Key Buffer 的大小,用于缓存 MyISAM 表的索引块。不要将其设置为大于可用内存的 30%,因为操作系统也需要一些内存来缓存行。即使您不使用 MyISAM 表,您仍应将其设置为 8-64M,因为它也将用于内部临时磁盘表。所以你应该把它设置为 2GB 到 3GB。
read_buffer_size
Run Code Online (Sandbox Code Playgroud)
用于对 MyISAM 表进行全表扫描的缓冲区大小。如果需要完整扫描,则按线程分配。您应该将其设置为 8MB 到 16MB 。
read_rnd_buffer_size
Run Code Online (Sandbox Code Playgroud)
在排序后按排序顺序读取行时,将通过此缓冲区读取行以避免磁盘寻道。如果将其设置为高值,您可以大大提高 ORDER BY 的性能。需要时按线程分配。
bulk_insert_buffer_size
Run Code Online (Sandbox Code Playgroud)
MyISAM 使用特殊的树状缓存来更快地进行批量插入(即 INSERT ... SELECT、INSERT ... VALUES (...)、(...)、... 和 LOAD DATA INFILE)。此变量以每个线程的字节数限制缓存树的大小。将其设置为 0 将禁用此优化。不要将其设置为大于“key_buffer_size”以获得最佳性能。当检测到批量插入时分配此缓冲区。将其设置为 512 MB 至 1GB。
myisam_sort_buffer_size
Run Code Online (Sandbox Code Playgroud)
当 MySQL 需要将 REPAIR、OPTIMIZE、ALTER 表语句以及 LOAD DATA INFILE 中的索引重建到空表中时,会分配此缓冲区。它是按线程分配的,因此请注意较大的设置。所以你应该把它设置为 2M
myisam_max_sort_file_size
Run Code Online (Sandbox Code Playgroud)
MySQL 在重新创建索引时允许使用的临时文件的最大大小(在 REPAIR、ALTER TABLE 或 LOAD DATA INFILE 期间。如果文件大小大于此值,将通过键缓存创建索引(这是较慢)。根据需要将其设置为。
myisam_repair_threads
Run Code Online (Sandbox Code Playgroud)
如果一张表有多个索引,MyISAM 可以使用多个线程通过并行排序来修复它们。如果您有多个 CPU 和大量内存,这很有意义。将其设置为 1。
myisam_recover
Run Code Online (Sandbox Code Playgroud)
自动检查和修复未正确关闭的 MyISAM 表。
| 归档时间: |
|
| 查看次数: |
23009 次 |
| 最近记录: |