Ödeme ve ödeme kaydetme işlemlerine sepeti hızlandırma


18

Birkaç Magento CE mağazası işletiyorum ve önbellekleme ile hızlandırıyorum, ancak araba ve ödeme hala yavaş. Bu sayfaları hızlandırma konusunda herhangi bir deneyim veya ipucu var mı?

Belki de veritabanını optimize ederek?

Sunucudan yavaş sorgu günlüğünde bir sipariş kaydedilirken bir sorgu kaydedilirken bazı sorgular gerçekleştirildi ve veritabanı darboğaz gibi görünüyor.


yavaş ne anlama geliyor? 1s? 5s? ... ayrıca mağazaların büyüklüğü (basit ürün sayısı, yapılandırılabilir sayısı, sales_flat_quote * tablolarının boyutu vb.) hakkında bazı ayrıntılar sağlar.
FlorinelChis

Dükkanın ne kadar meşgul olduğuna bağlı olarak yavaş 5 ile 10 saniye arasındadır. 50.000 basit ürün var, başka tür yok. Sales_flat_quote kimliği yarın aramak zorunda (şu anda acces yok)
Sander Mangel

1
kaç tane alışveriş sepeti fiyat kuralınız var? sepeti yavaşlatıyorlar. Ayrıca bu sorunun Hizmet Paketi sürümünde, 1Ç / 2Ç '13 bekleniyor
Piotr Kaminski

@ macki şu anda fiyat kuralları yok, tho için teşekkür ederiz tho. bilmek iyi
Sander Mangel

Yanıtlar:


27
  1. Kişisel deneyimden, ödeme işleminde 4 kez 'önbellek temizliğini' zorlayan Mage_Rss modülünü devre dışı bırakın - dosya sistemi önbelleği kullanıyorsanız çok pahalı, veritabanı kullanıyorsanız veya memcached olsa da muhtemelen pahalı.

  2. CE Sadece İndirilebilir ürünü kullanmadığınız sürece benzer nedenlerle Mage_Downloadable'ı devre dışı bırakın, bu, sepette birden fazla öğeniz olduğunda ödeme ve alışveriş sepeti işlemlerini hızlandıracaktır, çünkü checkout_type_onepage_save_order_afteröğelerin # sepetinde.

  3. Xhprof / xhgui'yi bağlayın ve biraz profil oluşturma yapın.


Teşekkürler XHProf ve XHGui içine dalmak için güzel bir hafta sonu projesi gibi geliyor
Sander Mangel

1
Gerçekten mage_rss'i etkisiz hale getirmeye veya gözlemcilerini yorumlamaya çalışmalısınız. siparişleri hemen hızlandırır
STANISLAS PIERRE-ALEXANDRE

1
Mage_Rss devre dışı bırakma hilesi OP için çalışıyorsa ilk elden geri bildirim duymak istiyorum
philwinkle

2
EE'nin bağımlılık olarak Mage_Downloadable gerektirdiğini belirtmek isterim:Module "Enterprise_PricePermissions" requires module "Mage_Downloadable
philwinkle

1
Asla geri rapor etmedim ve bunun için üzgünüm. Mage_Rss'i devre dışı bırakmak önemli ölçüde hızlandı, Mage_Downloadable'ın devre dışı bırakılması kayda değer performans iyileştirmeleriyle sonuçlanmadı, ancak 'uygun' bir karşılaştırma yapmadığımı söylemeliyim, tarayıcımda sadece birkaç çalıştırma var.
Sander Mangel

4
  • Dizinlerinizi manuel olarak ayarlayın.
  • Önbellek etiketi depolamasını devre dışı bırak

Her iki değişiklik de Magento'nun önbellekleri temizlemesini ve her sipariş verildiğinde yeniden endekslenmesini engellediğinden performans üzerinde büyük bir etkisi olacaktır.

Bununla birlikte, sonuç olarak içerik eski olabilir - stok seviyeleri vb.


teşekkürler, hatalı stok seviyeleri tho çoğu dükkanda bir sorundur. Ama stok yönetimi olmayan dükkanlar için bunu akılda tutmak!
Sander Mangel

2

Deneysel bir şekilde çözmek istiyorsanız, münih, almanca'daki ilk magento hackathon'dan bir uzantı var:

https://github.com/magento-hackathon/MongoDB-OrderTransactions

Onlar bir mongo db emirleri kuyruk, fikir, eğer mysql-sunucu onları geri yazmak için yük serbestse. Ama bu projenin ne kadar hazır olduğunu bilmiyorum. Afaik tüm yazıları çalışıyor, ama arka yazıları değil.


Teşekkürler, aslında noSQL çözümlerine bakıyordum ve bu güzel bir başlangıç ​​noktası olabilir!
Sander Mangel

2

Mücadele ettiğin Magento CE Versiyonunu bilmiyorum. Ancak CE 1.6'mda ciddi performans sorunları yaşadım.
Sebep: Yanlış ve eksik dizinler. CE 1.6.2'de düzeltildiği yerde
size yardımcı olup olmadığını kontrol edebilirsiniz.
38 satır için ödeme süresini 73 madde toplam 123 sn ile 4 sn azalttı !!!!

İşte geliyor:

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/* Foreign Keys must be dropped in the target to ensure that requires changes can be done*/

ALTER TABLE `core_url_rewrite` 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID`  , 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID`  ;


/* Alter table in target */
ALTER TABLE `catalog_category_entity_varchar` 
DROP KEY `MAGMI_CCEV_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `catalog_product_bundle_stock_index` 
DROP KEY `PRIMARY`, ADD PRIMARY KEY(`entity_id`,`website_id`,`stock_id`,`option_id`) ;


/* Alter table in target */
ALTER TABLE `catalog_product_entity_media_gallery` 
DROP KEY `MAGMI_CPEM_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `core_url_rewrite` 
CHANGE `id_path` `id_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Id Path' after `store_id` , 
CHANGE `request_path` `request_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Request Path' after `id_path` , 
CHANGE `target_path` `target_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Target Path' after `request_path` , 
CHANGE `is_system` `is_system` smallint(5) unsigned   NULL DEFAULT 1 COMMENT 'Defines is Rewrite System' after `target_path` , 
CHANGE `options` `options` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Options' after `is_system` , 
CHANGE `description` `description` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Deascription' after `options` , 
CHANGE `category_id` `category_id` int(10) unsigned   NULL COMMENT 'Category Id' after `description` , 
CHANGE `product_id` `product_id` int(10) unsigned   NULL COMMENT 'Product Id' after `category_id` , 
ADD KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID`(`product_id`) , 
DROP KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID` , 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID` 
FOREIGN KEY (`product_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE , 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID`  ;


/* Alter table in target */
ALTER TABLE `eav_attribute` 
DROP KEY `MAGMI_EA_CODE_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `eav_attribute_option_value` 
DROP KEY `MAGMI_EAOV_OPTIMIZATION_IDX` ;


/* The foreign keys that were dropped are now re-created*/

ALTER TABLE `core_url_rewrite` 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID` 
FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE , 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID` 
FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

1

Büyük veritabanı işlemlerini hızlandırmanın en iyi yolu, veritabanınızı veritabanı kullanımı için optimize edilmiş kendi sunucusunda bulundurmaktır. Çok az bir şey güvenli bir şekilde önbelleğe alınabileceğinden, ödeme alanında kodla geliştirilebilecek pek bir şey yoktur (Yapılandırılabilir gibi belirli ürünler teklif verme işlemini gerçekten azaltabilir).


Teşekkürler, bunun için korkuyordum. Ayrı DB sunucusu ile zaten özel bir kurulum. Umarım Mage 2'deki
kasayı

1
2.0 Şimdiye kadar pek çok yeniden yazma içerir, umarız. Dürüst olmak gerekirse, ürün modellerinin kendileri, ödemeyi yavaşlatan bir çok şeydir - teklif oluştururken / siparişe dönüştürürken her ürün için tür örnekleri üzerinde yineleme yapmak zorundadır ve bu pahalı bir süreç olabilir.
Andrew Quackenbos

1

Belki DB'nizde okuma ve yazma bölme bakmak. Diğerlerinin en iyi nasıl yapılandırılacağı konusunda daha fazla bilgiye sahip olmasına rağmen, bunu yaparken beni her zaman endişelendiren şey olan hemen çoğaltma kurulumuna ihtiyacınız olacaktır.


Bunun dürüst olmak için güvenilir bir çözüm olup olmadığından emin değilim, tamamlanmamış verilerin oldukça büyük bir değişikliği gibi geliyor. Fikir gerçekten güzel tho!
Sander Mangel

Belli bir dereceye kadar katılıyorum ve blog yayınları yazarken vb. Performansta belirgin bir gelişme gördüklerini gösteren çeşitli insanlar görmeme rağmen aslında kendim hiç yapmadım. Eğer bazı kriterler vb. Bulabilirsem onları gönderirim.
Richard Cleverley

Teşekkürler Richard, bu konuda da hosting şirketim ile konuşacağım. Sanırım bu tür şeylerle çok daha fazla deneyimleri var. Bir bilgi daha varsa, ben gönderirim
Sander Mangel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.