Magento是一个复杂的模式和数以百计的表非常数据库为中心的应用,使用一种被称为建筑实体的属性值模型(EAV)。该模型使得Magento的一个非常强大的、可扩展的平台,但是服务器必须处理这些数据库查询优化。大多数人面临的性能问题,事实上是通过缓慢的IO处理和低效的MySQL的配置引起的。
在你的MySQL服务器,打开配置文件my.cnf。 查询缓存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(责任编辑:好模板) |