Magento API太慢了? - php

因此,我最近通过Magento API调用在数据库上运行了一些查询,例如

$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$readresult = $connection_write->query("SELECT data_index FROM catalogsearch_fulltext WHERE MATCH(data_index) AGAINST ('anji') AND store_id = '1'");
$row = $readresult->fetch();

但是,显然,在循环遍历约30条记录,对其进行操作并写回记录之后,这会使整个服务器崩溃。

必须有一种方法来操纵Magento中的数据库表的值。有没有一种方法可以直接查询数据库并绕过Magento的所有笨重的API?

谢谢!

编辑:对于以后可能会发现的任何人。

在绕过Magento API进行数据库调用方面,我取得了成功。简单地直接查询数据库的速度要快得多。

但是,就我而言,我的表与其他表没有关联。 Magento中的许多表是相互关联的,如果您在一个表中进行某些更改,则在其他表中会产生多米诺骨牌效应。因此只能格外小心。

参考方案

Magento默认情况下为SLOW,这是我认为Magento的主要问题之一。它既缓慢又复杂。您可以使用(调用)此方法:

require_once '{ROOT_DIR}/app/Mage.php';
Mage::app('default');

并尝试制作一个自定义函数,但它不会比Magento本身快很多。您仍然可以使用Magento的类,但是可以开发自己的函数,但是仍然需要一些背景知识,这些知识并不是很容易获得-文档很差。也许您可以从一些magento博客和在线提示开始。

您说它停止工作了大约30秒。这通常是PHP停止执行的默认时间限制。因此,也请尝试在PHP文件顶部使用set_time_limit:

set_time_limit(0); //for unlimited time limit or
set_time_limit(120); //for 120 seconds time limit for example

也使用FTP连接并找到(通常)此目录:

{root}/var/cache/

应该有一些子目录,例如:mage--0,mage--1,mage--2 ...等。
您可以不时删除它们。这是CACHE文件,我注意到如果有很多CACHE文件,则magento会缓慢运行。如果删除此缓存文件和目录,则一段时间后效果会更好。

如何获取数组的Params类型 - php

在Magento中,我们通常会获取参数http://magento.com/customer/account/view/id/122 我们可以通过获取参数$x = $this->getRequest()->getParam('id'); echo $x; // value is 122 现在据我所知$ x只是从参数中获取字符串…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP:将字符串拆分为字母和数字部分的最佳方法 - php

我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…