1
定制的客户网格导致MySQL表扫描和文件排序又降低了性能
编辑:我最初在Stackoverflow上发布了这个问题,但从未得到完整的回答,我在此发布,希望能够进一步阐明为什么大规模表扫描以及任何(希望)最小的核心更改可以防止此类问题的方法。 Magento企业。1.10.1.1。客户和地址的数据集是半大型(125k +)CSR,通常位于此网格上(有时一次有25+个并发用户)。 这是在客户Grid.php Block文件中生成集合的代码片段。没什么特别的,特别是主要向集合添加属性。 $collection = Mage::getResourceModel('customer/customer_collection') ->addNameToSelect() ->addAttributeToSelect('email') ->addAttributeToSelect('group_id') ->addAttributeToSelect('prod_codes') ->addAttributeToSelect('last_called_date') ->addAttributeToSelect('time_zone') ->addAttributeToSelect('salesrep') ->addAttributeToSelect('do_not_call') ->addAttributeToSelect('club_member') ->addAttributeToSelect('call_back_date') ->addAttributeToSelect('marketing_code_outcome') ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left') ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left') ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left') ->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left'); $this->setCollection($collection); 生成此查询,此查询行为异常,导致在客户网格中的加载时间非常长: SELECT e . *, _table_prefix.value AS prefix, _table_firstname.value AS …