我已经尝试过很难理解cataloginventory_stock关系 - 我知道stock_item和stock_status表在库存项目被修改时都会更新,但我无法弄清楚stock_status_idx表是否真的需要.
从我所看到的,stock_status_idx表包含与stock_status表相同的信息.它只是临时表吗?如果我手动更新了stock_item和stock_status表,但没有更新stock_status_idx表,我没有看到错误的库存状态有任何问题.
事情是..我认为它以某种方式用于缓存/索引器.但是,即使我没有修改stock_status_idx表,库存状态也会在后端和前端显示得很好.
那么,stock_status_idx表的重点是什么?
非常感谢你的帮助.
我想知道同样的问题,并决定挖掘,因为我无法在任何地方找到答案.似乎_tmp和_idx用作索引数据的临时持有者.
例如,您可以查看该reindexAll()方法app/code/core/Mage/Catalog/Model/Resource/Category/Indexer/Product.php,您将了解它在生成索引时使用_idx表临时存储它的数据:
$this->useIdxTable(true);
...
$idxTable = $this->getIdxTable();
....
$query = $select->insertFromSelect($idxTable, ...
Run Code Online (Sandbox Code Playgroud)
在同一方法结束时,您会注意到一个很好的$this->syncData()方法调用.你可能猜到了!该函数存在 app/code/core/Mage/Index/Model/Resource/Abstract.php并正在执行此操作,将_idx与main同步:
$this->_getWriteAdapter()->delete($this->getMainTable());
$this->insertFromTable($this->getIdxTable(), $this->getMainTable(), false);
$this->commit();
Run Code Online (Sandbox Code Playgroud)
祝你好运!
idx 表仅在 Magento 需要根据库存项目选择许多产品时使用,因此这些表上的索引比使用主库存表更快。
我建议您也将数据写入此表中。或者更好的是,使用 Magento API 或 Magento App over PHP 写入 Magento 数据库,更安全。
| 归档时间: |
|
| 查看次数: |
4165 次 |
| 最近记录: |