magento是一个灵活的系统,但是糟糕的是他的db总是显得很庞大很臃肿。或许是因为有很多的product,你知道的,EAV模式很灵活,但代价是数据很庞大,维护很繁琐。不幸的是,这并不是唯一一个使db慢的原因,大量的log充斥着db,其实很多许久的log已经没有意义,所以适时清除log就显得尤为必要。下面给出如何清除log的方法。
NOTE: 操作之前请确认已经对db做了完整的备份
magento维护着一些关于log的table,比如customers 浏览记录,产品的比较记录等;magento本来是有自己的方法定期清除这些log,但不幸的是,这个特性默认是没开启的,并且大多数客户也没用开启它;有3种办法能清除这些table:后台清除;通过log.PHP ,在 ../shell 目录下;通过phpMyAdmin或MySQL客户端;
以下列出相关log的table
- log_customer
- log_visitor
- log_visitor_info
- log_url
- log_url_info
- log_quote
- report_viewed_product_index
- report_compared_product_index
- report_event
- catalog_compare_item
一:后台清除
1:登入后太 System > Configuration.
2:左侧菜单 Advanced 下点击 System.
3:在"Log Cleaning"下, 改变"Enable Log Cleaning" 为 YES 并且配置Save Log 为15 days:
4:"Save Config"
二:Log.php
进入magento/shell/目录
执行php -f shell/log.php clean
-days 指定清除周期天数。
三:通过PhpMyAdmin
这是最灵活也是最高效的方法,进入后选择以下table
- dataflow_batch_export
- dataflow_batch_import
- log_customer
- log_quote
- log_summary
- log_summary_type
- log_url
- log_url_info
- log_visitor
- log_visitor_info
- log_visitor_online
- report_viewed_product_index
- report_compared_product_index
- report_event
然后进行empty操作即可。