西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

优化Magento MySQL的配置

时间:2016-11-06 09:04来源:未知 作者:好模板 点击:
Magento是一个复杂的模式和数以百计的表非常数据库为中心的应用,使用一种被称为建筑实体的属性值模型(EAV)。该模型使得Magento的一个非常强大的、可扩展的平台,但是服务器必须

Magento是一个复杂的模式和数以百计的表非常数据库为中心的应用,使用一种被称为建筑实体的属性值模型(EAV)。该模型使得Magento的一个非常强大的、可扩展的平台,但是服务器必须处理这些数据库查询优化。大多数人面临的性能问题,事实上是通过缓慢的IO处理和低效的MySQL的配置引起的。

在你的MySQL服务器,打开配置文件my.cnf。 
下面我将给我的最重要的参数的建议。如果你不能找到参数已经在您的配置文件,你可以把它下面的[mysqld]部分。 
下面提供的数字是基于一个系统与8 GB RAM和CPU核心8。数字可能取决于你的特定的设置有所不同。

查询缓存

query_cache_type = 1
query_cache_size = 64M

也许最重要的是调整参数的查询缓存。  查询缓存中存储的表连同相应的结果被发送到客户端。  如果一个相同的声明是收到后,从服务器检索查询缓存而不是解析和执行语句的结果再次。  如果你可以查询是否已缓存避免大量昂贵的IO操作。这将对磁性能带来很大的影响。

线程缓存大小

thread_cache_size = 16

MySQL使用一个单独的线程的每个客户端连接。  在环境中的应用程序不附加到一个数据库实例的执著,而是创建和关闭大量连接的每一秒,产生新的线程在高速率的过程可能开始消耗显著的CPU资源。  为了减轻这种负面影响,实现 MySQL线程缓存这使得它能够节省,线程,被关闭和重用他们的新的连接。  参数 thread_cache_size 定义了许多未使用的线程可以在任何时候活着。

关键缓冲

key_buffer = 256M

关键缓冲区用于对于MyISAM表缓冲索引块。  它最大限度地减少磁盘I/O的保持最频繁访问的内存中的表块。  如Magento使用InnoDB很多其较重的数据库表,的MyISAM关键缓冲效果有所降低。然而,这是一个好主意,它比默认的高一点。

表缓存

table_cache = 512

MySQL的配置存储器的一部分 表缓存。table_cache有关max_connections。  例如,200并发运行的连接,你应该有一个至少200×N表缓存,其中n是最大数量的表每参加任何查询您执行。

InnoDB的具体设置

innodb_buffer_pool_size = 512M
innodb_thread_concurrency = 8 #等于CPU核心数量
innodb_additional_mem_pool_size = 800
innodb_log_buffer_size = 4M

Magento使其大量的数据库引擎使用InnoDB表。以上是对缓冲区的大小和存储分配使用innodb的一些建议。

通过我们的研究,我们发现这些设置是最重要的Magento MySQL的优化。我是包括一些可值得探讨的同时,与推荐值。

join_buffer_size=2m 
max_heap_table_size=16m 
tmp_table_size=16m 
max_allowed_packet=2m 
read_buffer_size=2m
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容