Кэш не доставляется?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Кэш не доставляется?

Сообщение Anonymous »

Я недавно обновился до Magento 1.9, но мои категории работали очень медленно. Я не смог найти проблему, поэтому предположил, что это связано с magento 1.9, и решил перейти на magento 1.8. Тогда все работало нормально, но через некоторое время magento снова стал медленнее. Я внес некоторые изменения из-за некоторых других ошибок, так как немного изменил /etc/local.xml. Очевидно, я снова отменил его, хотя изначально это не должно было быть причиной. К сожалению, это не решило мою проблему.

Мой текущий файл local.xml:

Код: Выделить всё

Cm_Cache_Backend_File
SH24_

Бэкэнд Cm Cache определенно работает. Те же результаты при использовании стандартного кеша.

Я включил профилировщик, и на другой странице разработки способ доставки файлов выглядит совершенно по-другому.
https://i.sstatic.net/RqBjp.png
(медленная страница)

Вот как это выглядит при другой разработке теста сайт:
https://i.sstatic.net/xMUtV.png
(Быстрая страница)

Генерация разницы составляет 6 секунд.

Как вы можете видеть, на медленном сайте все вложено в макет /db_updates, а на медленном сайте это не так.

Самый трудоемкий звонок

Код: Выделить всё

CONFIGURABLE:Mage_Catalog_Model_Product_Type_Configurable::getConfigurableAttributes
который не вызывается на быстром сайте. Вместо этого это просто:

Код: Выделить всё

__EAV_LOAD_MODEL__
В var/cache появляются файлы. Журнал ошибок ничего не регистрирует.

Кто-нибудь знает, как я могу это решить?
Большое спасибо!

РЕДАКТИРОВАТЬ:
Что я нашел на данный момент.
/Mage/Core/Model/Layout/update.php

Код: Выделить всё

 public function fetchDbLayoutUpdates($handle)
{
$_profilerKey = 'layout/db_update: '.$handle;
Varien_Profiler::start($_profilerKey);
Mage::log($_profilerKey, null, 'mylogfile.log');
$updateStr = $this->_getUpdateString($handle);
if (!$updateStr) {
return false;
}
$updateStr = '' . $updateStr . '';
$updateStr = str_replace($this->_subst['from'], $this->_subst['to'], $updateStr);
$updateXml = simplexml_load_string($updateStr, $this->getElementClass());
$this->fetchRecursiveUpdates($updateXml);
$this->addUpdate($updateXml->innerXml());
Varien_Profiler::stop($_profilerKey);
return true;

}
Как и ожидалось, $updateStr пуст, и возврат вызова падает.

Итак, у меня было присмотритесь к $this->_getUpdateString($handle):

Код: Выделить всё

return Mage::getResourceModel('core/layout')->fetchUpdatesByHandle($handle);
Я нашел fetchUpdatesByHandle($handle); в /Mage/Core/Model/Resource/Layout.php:

Код: Выделить всё

public function fetchUpdatesByHandle($handle, $params = array())
{
$bind = array(
'store_id'  => Mage::app()->getStore()->getId(),
'area'      => Mage::getSingleton('core/design_package')->getArea(),
'package'   => Mage::getSingleton('core/design_package')->getPackageName(),
'theme'     => Mage::getSingleton('core/design_package')->getTheme('layout')
);
foreach ($params as $key => $value) {
if (isset($bind[$key])) {
$bind[$key] = $value;
}
}
$bind['layout_update_handle'] = $handle;
$result = '';

$readAdapter = $this->_getReadAdapter();
if ($readAdapter) {
$select = $readAdapter->select()
->from(array('layout_update' => $this->getMainTable()), array('xml'))
->join(array('link'=>$this->getTable('core/layout_link')),
'link.layout_update_id=layout_update.layout_update_id',
'')
->where('link.store_id IN (0, :store_id)')
->where('link.area = :area')
->where('link.package = :package')
->where('link.theme = :theme')
->where('layout_update.handle = :layout_update_handle')
->order('layout_update.sort_order ' .  Varien_Db_Select::SQL_ASC);

$result = join('', $readAdapter->fetchCol($select, $bind));
}
return $result;
}
Ожидается, что $result будет пустой строкой.
$select выглядит следующим образом:

Код: Выделить всё

2014-06-22T13:52:12+00:00 DEBUG (7):  handle CATEGORY_56
query
object(Varien_Db_Select)#295 (4) {
["_bind":protected]=>
array(0) {
}
["_adapter":protected]=>
object(Magento_Db_Adapter_Pdo_Mysql)#80 (31) {
["_defaultStmtClass":protected]=>
string(29) "Varien_Db_Statement_Pdo_Mysql"
["_transactionLevel":protected]=>
int(0)
["_connectionFlagsSet":protected]=>
bool(true)
["_ddlCache":protected]=>
array(1) {
[1]=>
array(2) {
["catalog_product_flat_1"]=>
array(56) {
["entity_id"]=>
array(14) {
["SCHEMA_NAME"]=>
NULL
["TABLE_NAME"]=>
string(22) "catalog_product_flat_1"
["COLUMN_NAME"]=>
string(9) "entity_id"
["COLUMN_POSITION"]=>
int(1)
["DATA_TYPE"]=>
string(3) "int"
["DEFAULT"]=>
NULL
["NULLABLE"]=>
bool(false)
["LENGTH"]=>
NULL
["SCALE"]=>
NULL
["PRECISION"]=>
NULL
["UNSIGNED"]=>
bool(true)
["PRIMARY"]=>
bool(true)
["PRIMARY_POSITION"]=>
int(1)
["IDENTITY"]=>
bool(false)
}
["attribute_set_id"]=>
array(14) {
["SCHEMA_NAME"]=>
NULL
["TABLE_NAME"]=>
string(22) "catalog_product_flat_1"
["COLUMN_NAME"]=>
string(16) "attribute_set_id"
["COLUMN_POSITION"]=>
int(2)
["DATA_TYPE"]=>
string(8) "smallint"
["DEFAULT"]=>
string(1) "0"
["NULLABLE"]=>
bool(false)
["LENGTH"]=>
NULL
["SCALE"]=>
NULL
["PRECISION"]=>
NULL
["UNSIGNED"]=>
bool(true)
["PRIMARY"]=>
bool(false)
["PRIMARY_POSITION"]=>
NULL
["IDENTITY"]=>
bool(false)
}
["type_id"]=>
array(14) {
["SCHEMA_NAME"]=>
NULL
["TABLE_NAME"]=>
string(22) "catalog_product_flat_1"
["COLUMN_NAME"]=>
string(7) "type_id"
["COLUMN_POSITION"]=>
int(3)
["DATA_TYPE"]=>
string(7) "varchar"
["DEFAULT"]=>
string(6) "simple"
["NULLABLE"]=>
bool(false)
["LENGTH"]=>
string(2) "32"
["SCALE"]=>
NULL
["PRECISION"]=>
NULL
["UNSIGNED"]=>
NULL
["PRIMARY"]=>
bool(false)
["PRIMARY_POSITION"]=>
NULL
["IDENTITY"]=>
bool(false)
}
["cost"]=>
array(14) {
["SCHEMA_NAME"]=>
NULL
["TABLE_NAME"]=>
string(22) "catalog_product_flat_1"
["COLUMN_NAME"]=>
string(4) "cost"
["COLUMN_POSITION"]=>
int(4)
["DATA_TYPE"]=>
string(7) "decimal"
["DEFAULT"]=>
NULL
["NULLABLE"]=>
bool(true)
["LENGTH"]=>
NULL
["SCALE"]=>
string(1) "4"
["PRECISION"]=>
string(2) "12"
["UNSIGNED"]=>
NULL
["PRIMARY"]=>
bool(false)
["PRIMARY_POSITION"]=>
NULL
["IDENTITY"]=>
bool(false)
}
["created_at"]=>
array(14) {
["SCHEMA_NAME"]=>
NULL
["TABLE_NAME"]=>
string(22) "catalog_product_flat_1"
["COLUMN_NAME"]=>
string(10)  "created_at"
["COLUMN_POSITION"]=>
int(5)
["DATA_TYPE"]=>
string(9) "timestamp"
["DEFAULT"]=>
NULL
["NULLABLE"]=>
bool(true)
["LENGTH"]=>
NULL
["SCALE"]=>
NULL
["PRECISION"]=>
NULL
["UNSIGNED"]=>
NULL
["PRIMARY"]=>
bool(false)
["PRIMARY_POSITION"]=>
NULL
["IDENTITY"]=>
bool(false)
}
[MORE ATTRIBUTES]
}
}
}
["_bindParams":protected]=>
array(0) {
}
["_bindIncrement":protected]=>
int(0)
["_debug":protected]=>
bool(false)
["_logQueryTime":protected]=>
float(0.05)
["_logAllQueries":protected]=>
bool(false)
["_logCallStack":protected]=>
bool(false)
["_debugFile":protected]=>
string(23) "var/debug/pdo_mysql.log"
["_debugIoAdapter":protected]=>
NULL
["_debugTimer":protected]=>
int(0)
["_cacheAdapter":protected]=>
object(Varien_Cache_Core)#18 (6) {
["_specificOptions":protected]=>
array(1) {
["slab_size"]=>
int(0)
}
["_backend":protected]=>
object(Cm_Cache_Backend_File)#10 (4) {
["_options":protected]=>
array(11) {
["cache_dir"]=>
string(41) "/home/www/xxxx/magento/var/cache/"
["file_name_prefix"]=>
string(2) "cm"
["file_locking"]=>
bool(true)
["read_control"]=>
bool(false)
["read_control_type"]=>
string(5) "crc32"
["hashed_directory_level"]=>
int(2)
["use_chmod"]=>
bool(false)
["directory_mode"]=>
int(504)
["file_mode"]=>
int(432)
["hashed_directory_umask"]=>
int(504)
["cache_file_umask"]=>
int(432)
}
["_isTagDirChecked":protected]=>
NULL
["_metadatasArray":protected]=>
array(0) {
}
["_directives":protected]=>
array(3) {
["lifetime"]=>
int(7200)
["logging"]=>
bool(false)
["logger"]=>
NULL
}
}
["_options":protected]=>
array(9) {
["write_control"]=>
bool(true)
["caching"]=>
bool(true)
["cache_id_prefix"]=>
string(5) "xxx"
["automatic_serialization"]=>
bool(false)
["automatic_cleaning_factor"]=>
int(0)
["lifetime"]=>
int(7200)
["logging"]=>
bool(false)
["logger"]=>
NULL
["ignore_user_abort"]=>
bool(false)
}
["_lastId":"Zend_Cache_Core":private]=>
string(37) "XX_DB_PDO_MYSQL_DDL_eav_attribute_1"
["_extendedBackend":protected]=>
bool(true)
["_backendCapabilities":protected]=>
array(6) {
["automatic_cleaning"]=>
bool(true)
["tags"]=>
bool(true)
["expired_read"]=>
bool(true)
["priority"]=>
bool(false)
["infinite_lifetime"]=>
bool(true)
["get_list"]=>
bool(true)
}
}
["_isDdlCacheAllowed":protected]=>
bool(true)
["_ddlColumnTypes":protected]=>
array(13) {
["boolean"]=>
string(4) "bool"
["smallint"]=>
string(8) "smallint"
["integer"]=>
string(3) "int"
["bigint"]=>
string(6) "bigint"
["float"]=>
string(5) "float"
["decimal"]=>
string(7) "decimal"
["numeric"]=>
string(7) "decimal"
["date"]=>
string(4) "date"
["timestamp"]=>
string(9) "timestamp"
["datetime"]=>
string(8) "datetime"
["text"]=>
string(4) "text"
["blob"]=>
string(4)  "blob"
["varbinary"]=>
string(4) "blob"
}
["_ddlRoutines":protected]=>
array(5) {
[0]=>
string(3) "alt"
[1]=>
string(3) "cre"
[2]=>
string(3) "ren"
[3]=>
string(3) "dro"
[4]=>
string(3) "tru"
}
["_tempRoutines":protected]=>
string(22) "#^\w+\s+temporary\s#im"
["_intervalUnits":protected]=>
array(6) {
["YEARS"]=>
string(4) "YEAR"
["MONTHS"]=>
string(5) "MONTH"
["DAYS"]=>
string(3) "DAY"
["HOURS"]=>
string(4) "HOUR"
["MINUTES"]=>
string(6) "MINUTE"
["SECOND"]=>
string(6) "SECOND"
}
["_queryHook":protected]=>
array(2) {
["object"]=>
object(Mage_Core_Model_Resource_Setup)#77 (9) {
["_resourceName":protected]=>
string(14) "livechat_setup"
["_resourceConfig":protected]=>
object(Mage_Core_Model_Config_Element)#124 (2) {
["setup"]=>
object(Mage_Core_Model_Config_Element)#401 (1) {
["module"]=>
string(14) "Zopim_Livechat"
}
["connection"]=>
object(Mage_Core_Model_Config_Element)#580 (1) {
["use"]=>
string(10) "core_setup"
}
}
["_connectionConfig":protected]=>
object(Mage_Core_Model_Config_Element)#35 (9) {
["host"]=>
string
["username"]=>
string
["password"]=>
string
["dbname"]=>
string(13)
["initStatements"]=>
string(14) "SET NAMES utf8"
["model"]=>
string(6) "mysql4"
["type"]=>
string(9) "pdo_mysql"
["pdoType"]=>
object(Mage_Core_Model_Config_Element)#580 (0) {
}
["active"]=>
string(1) "1"
}
["_moduleConfig":protected]=>
object(Mage_Core_Model_Config_Element)#70 (3) {
["active"]=>
string(4) "true"
["codePool"]=>
string(5) "local"
["version"]=>
string(5) "0.5.0"
}
["_callAfterApplyAllUpdates":protected]=>
bool(false)
["_conn":protected]=>
*RECURSION*
["_tables":protected]=>
array(0) {
}
["_setupCache":protected]=>
array(0) {
}
["_queriesHooked":protected]=>
bool(true)
}
["method"]=>
string(17) "callbackQueryHook"
}
["_pdoType":protected]=>
string(5) "mysql"
["_numericDataTypes":protected]=>
array(16) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
["INT"]=>
int(0)
["INTEGER"]=>
int(0)
["MEDIUMINT"]=>
int(0)
["SMALLINT"]=>
int(0)
["TINYINT"]=>
int(0)
["BIGINT"]=>
int(1)
["SERIAL"]=>
int(1)
["DEC"]=>
int(2)
["DECIMAL"]=>
int(2)
["DOUBLE"]=>
int(2)
["DOUBLE PRECISION"]=>
int(2)
["FIXED"]=>
int(2)
["FLOAT"]=>
int(2)
}
["_config":protected]=>
array(13) {
["host"]=>
string
["username"]=>
string
["password"]=>
string
["dbname"]=>
string
["initStatements"]=>
string(14) "SET NAMES utf8"
["model"]=>
string(6) "mysql4"
["type"]=>
string(9) "pdo_mysql"
["pdoType"]=>
string(0) ""
["active"]=>
string(1) "1"
["charset"]=>
NULL
["persistent"]=>
bool(false)
["options"]=>
array(3) {
["caseFolding"]=>
int(0)
["autoQuoteIdentifiers"]=>
bool(true)
["fetchMode"]=>
int(2)
}
["driver_options"]=>
array(0)  {
}
}
["_fetchMode":protected]=>
int(2)
["_profiler":protected]=>
object(Zend_Db_Profiler)#52 (4) {
["_queryProfiles":protected]=>
array(0) {
}
["_enabled":protected]=>
bool(false)
["_filterElapsedSecs":protected]=>
NULL
["_filterTypes":protected]=>
NULL
}
["_defaultProfilerClass":protected]=>
string(16) "Zend_Db_Profiler"
["_connection":protected]=>
object(PDO)#94 (0) {
}
["_caseFolding":protected]=>
int(0)
["_autoQuoteIdentifiers":protected]=>
bool(true)
["_allowSerialization":protected]=>
bool(true)
["_autoReconnectOnUnserialize":protected]=>
bool(false)
}
["_parts":protected]=>
array(12) {
["straightjoin"]=>
bool(false)
["distinct"]=>
bool(false)
["columns"]=>
array(1) {
[0]=>
array(3) {
[0]=>
string(13) "layout_update"
[1]=>
string(3) "xml"
[2]=>
NULL
}
}
["union"]=>
array(0) {
}
["from"]=>
array(2) {
["layout_update"]=>
array(4) {
["joinType"]=>
string(4) "from"
["schema"]=>
NULL
["tableName"]=>
string(18) "core_layout_update"
["joinCondition"]=>
NULL
}
["link"]=>
array(4) {
["joinType"]=>
string(10) "inner join"
["schema"]=>
NULL
["tableName"]=>
string(16) "core_layout_link"
["joinCondition"]=>
string(52) "link.layout_update_id=layout_update.layout_update_id"
}
}
["where"]=>
array(5) {
[0]=>
string(33) "(link.store_id IN (0, :store_id))"
[1]=>
string(23) "AND (link.area = :area)"
[2]=>
string(29) "AND (link.package = :package)"
[3]=>
string(25) "AND (link.theme = :theme)"
[4]=>
string(50) "AND (layout_update.handle = :layout_update_handle)"
}
["group"]=>
array(0) {
}
["having"]=>
array(0) {
}
["order"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(24) "layout_update.sort_order"
[1]=>
string(3) "ASC"
}
}
["limitcount"]=>
NULL
["limitoffset"]=>
NULL
["forupdate"]=>
bool(false)
}
["_tableCols":protected]=>
array(0) {
}
}
Result
string(0) ""
Странно то, что в моей быстрой разработке тестов $result тоже пуст?
Правда не знаю, что все это значит!

EDIT2:
Я заметил это, просматривая созданные модели с помощью Magneto Debug:
МОДЕЛИ

Код: Выделить всё

Resource Name   Model Class Times Instantiated
catalog/category_flat   Mage_Catalog_Model_Category 32
cms/page    Mage_Cms_Model_Page 18
cms/block   Mage_Cms_Model_Block    5
catalog/attribute   Mage_Catalog_Model_Resource_Eav_Attribute   2
eav/entity_type Mage_Eav_Model_Entity_Type  2
core/url_rewrite    Mage_Core_Model_Url_Rewrite 2
index/process   Mage_Index_Model_Process            2
core/flag           Mage_Catalog_Model_Product_Flat_Flag    1
customer/group  Mage_Customer_Model_Group   1
Но: каталог/продукт Mage_Catalog_Model_Product 9 не отображается, даже если есть отображаемые продукты, экземпляр которых создается в быстром магазине.

Подробнее здесь: https://stackoverflow.com/questions/243 ... delivering
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»