เร่งความเร็วรถเข็นเพื่อชำระเงินและดำเนินการบันทึกการชำระเงิน


18

ฉันใช้ร้านค้า Magento CE หลายร้านและเพิ่มความเร็วด้วยการแคชอย่างไรก็ตามรถเข็นและเช็คเอาต์ยังคงช้า ใครบ้างมีประสบการณ์หรือเคล็ดลับในการเร่งหน้าเหล่านี้หรือไม่

บางทีด้วยการปรับฐานข้อมูลให้เหมาะสม

แบบสอบถามบางอย่างถูกดำเนินการเมื่อบันทึกคำสั่งซื้อจากเช็คเอาต์จะแสดงในบันทึกการสืบค้นที่ช้าบนเซิร์ฟเวอร์และฐานข้อมูลดูเหมือนจะเป็นปัญหาคอขวด


ช้าหมายถึงอะไร 1s? 5s? ... ยังให้รายละเอียดบางอย่างเกี่ยวกับขนาดของร้านค้า (จำนวนผลิตภัณฑ์ที่เรียบง่ายจำนวนที่กำหนดค่าได้ขนาดของตาราง sales_flat_quote * เป็นต้น)
FlorinelChis

ช้าอยู่ระหว่าง 5 และ 10 วินาทีขึ้นอยู่กับว่าร้านยุ่งแค่ไหน มีผลิตภัณฑ์ง่าย 50,000 ชนิดไม่มีประเภทอื่น id sales_flat_quote ต้องค้นหาในวันพรุ่งนี้ (ไม่ต้องใช้ของในตอนนี้)
Sander Mangel

1
คุณมีกฎราคาตะกร้าสินค้ากี่ตะกร้า? พวกเขาชะลอรถเข็น นอกจากนี้เราหวังว่าจะแก้ไขปัญหานี้ในการเปิดตัว Service Pack ซึ่งคาดว่า Q1 / Q2 '13
Piotr Kaminski

@ macki ไม่มีกฎราคาในขณะนี้ขอบคุณที่พูดถึงสรรพสินค้า สิ่งที่ดีที่ควรรู้
Sander Mangel

คำตอบ:


27
  1. จากประสบการณ์ส่วนตัวปิดการใช้งานโมดูล Mage_Rss ซึ่งบังคับให้ 'แคชสะอาด' 4 ครั้งในกระบวนการเช็คเอาต์ - แพงมากถ้าคุณใช้แคชระบบไฟล์อาจมีราคาแพงถ้าคุณใช้ฐานข้อมูลหรือ memcached

  2. CE เท่านั้นปิดการใช้งาน Mage_Downloadable สำหรับเหตุผลที่คล้ายกันตราบใดที่คุณไม่ได้ใช้ผลิตภัณฑ์ที่ดาวน์โหลดนี้จะเพิ่มความเร็วในการเช็คเอาท์และรถการกระทำเมื่อคุณมีหลายรายการในรถเข็นสินค้าเพราะมีผู้สังเกตการณ์ในสิ่งที่ต้องการcheckout_type_onepage_save_order_afterซึ่งการตอบสนองคูณเวลาโดยการ # รายการ ในรถเข็น

  3. วางสาย xhprof / xhguiและทำโปรไฟล์


ขอบคุณ XHProf และ XHGui ฟังดูเหมือนเป็นโครงการสุดสัปดาห์ที่ดีสำหรับการดำน้ำ
Sander Mangel

1
คุณควรพยายามปิดการใช้งาน mage_rss หรือแสดงความคิดเห็นกับผู้สังเกตการณ์ เพิ่มความเร็วในการสั่งซื้อบันทึกทันที
STANISLAS PIERRE-ALEXANDRE

1
ฉันต้องการรับฟังความคิดเห็นโดยตรงหาก Mage_Rss ปิดการใช้งานเคล็ดลับสำหรับ OP
philwinkle

2
ฉันต้องการจะชี้ให้เห็นว่า EE ต้องการ Mage_Downloadable เป็นการพึ่งพา:Module "Enterprise_PricePermissions" requires module "Mage_Downloadable
philwinkle

1
ฉันไม่เคยรายงานกลับและฉันเสียใจด้วย การปิดใช้งาน Mage_Rss ทำให้ความเร็วเพิ่มขึ้นอย่างมากการปิดใช้งาน Mage_Downloadable ไม่ได้ส่งผลให้มีการปรับปรุงประสิทธิภาพที่น่าทึ่ง แต่ฉันต้องบอกว่าฉันไม่ได้ทำเกณฑ์มาตรฐาน
Sander Mangel

4
  • ตั้งค่าดัชนีของคุณเป็นแบบแมนนวล
  • ปิดใช้งานที่เก็บข้อมูลแท็กแคช

การเปลี่ยนแปลงทั้งสองนี้จะมีผลกระทบอย่างมากต่อประสิทธิภาพการทำงานเนื่องจากป้องกันไม่ให้ Magento ล้างแคชและจัดทำดัชนีใหม่ทุกครั้งที่มีคำสั่งซื้อ

มันมาพร้อมกับค่าใช้จ่าย แต่เนื้อหานั้นอาจค้างเป็นผล - ระดับสต็อกและอื่น ๆ


ขอบคุณระดับสินค้าที่ผิดพลาดเป็นปัญหาสำหรับร้านค้าส่วนใหญ่ แต่อย่าลืมเก็บไว้ในใจสำหรับร้านค้าที่ไม่มีการจัดการสต็อก!
Sander Mangel

2

หากคุณต้องการแก้ปัญหาด้วยวิธีการทดลองมีส่วนขยายจากการแฮ็กโกวีโอวีโอไอพีรุ่นแรกในมิวนิคเยอรมัน:

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

พวกเขาจัดคิวคำสั่งลงใน mongo db แนวคิดก็คือหากเซิร์ฟเวอร์ mysql ไม่โหลดให้เขียนกลับ แต่ฉันไม่รู้ว่าโครงการนี้พร้อมแล้ว Afaik ใช้การเขียนทั้งหมด แต่ไม่ใช่การเขียนด้านหลัง


ขอบคุณฉันดูที่โซลูชัน noSQL อย่างแท้จริงและนี่อาจเป็นจุดเริ่มต้นที่ดี!
Sander Mangel

2

ฉันไม่รู้จัก Magento CE เวอร์ชันที่คุณกำลังดิ้นรนอยู่ แต่ฉันมีปัญหาเรื่องประสิทธิภาพที่ร้ายแรงกับ CE 1.6
สาเหตุ: ดัชนีผิดและขาดหายไป พวกเขาอยู่ที่ไหนที่ได้รับการแก้ไขใน CE 1.6.2
คุณอาจตรวจสอบว่ามันช่วยคุณได้หรือไม่
ฉันลดเวลาเช็คเอาต์สำหรับ 38 สายรวม 73 รายการจาก 123 วินาทีเหลือ 4 วินาที !!!!

ที่นี่มันมา:

/*!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

วิธีที่ดีที่สุดในการเพิ่มความเร็วในการดำเนินงานฐานข้อมูลขนาดใหญ่คือการมีฐานข้อมูลของคุณบนเซิร์ฟเวอร์ของตัวเองซึ่งได้รับการปรับให้เหมาะสำหรับการใช้ฐานข้อมูล มีไม่มากที่สามารถปรับปรุงได้ในรหัสพื้นที่ชำระเงินที่ชาญฉลาด (แม้ว่าบางประเภทของผลิตภัณฑ์เช่นกำหนดค่าได้จริงสามารถชะงักกระบวนการ quoting จริง ๆ ) เนื่องจากน้อยมากสามารถแคชได้อย่างปลอดภัย


ขอบคุณที่กลัวสิ่งนั้น มันเป็นการติดตั้งแบบแยกเฉพาะที่มีเซิร์ฟเวอร์ฐานข้อมูลแยกต่างหาก หวังว่าพวกเขาจะเพิ่มประสิทธิภาพการเช็คเอาต์ใน Mage 2 :)
Sander Mangel

1
2.0 มีการเขียนซ้ำจำนวนมากดังนั้นเราจึงหวังได้ สุจริตรูปแบบผลิตภัณฑ์ของตัวเองเป็นจำนวนมากทำให้การเช็คเอาต์ช้า - มันจะต้องย้ำกับอินสแตนซ์ประเภทสำหรับแต่ละผลิตภัณฑ์ในขณะที่สร้างใบเสนอราคา / การแปลงเป็นคำสั่งและอาจเป็นกระบวนการที่มีราคาแพง
Andrew Quackenbos

1

อาจดูแยกการอ่านและเขียนในฐานข้อมูลของคุณ คุณจะต้องใกล้กับการตั้งค่าการจำลองแบบทันทีซึ่งเป็นสิ่งที่ทำให้ฉันกังวลอยู่เสมอถึงแม้ว่าผู้อื่นอาจมีข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าที่ดีที่สุด


อืมไม่แน่ใจว่านี่เป็นคำตอบที่น่าเชื่อถือจริงๆหรือไม่ฟังดูเหมือนเป็นการเปลี่ยนแปลงครั้งใหญ่ของข้อมูลที่ไม่สมบูรณ์ ความคิดนั้นดีมากจริงๆ!
Sander Mangel

ฉันเห็นด้วยในระดับหนึ่งและยอมรับว่าฉันไม่เคยทำด้วยตัวเองจริง ๆ แม้ว่าฉันจะเห็นคนเขียนบล็อกโพสต์และแนะนำว่าพวกเขาได้เห็นการปรับปรุงประสิทธิภาพการทำงานที่ชัดเจน หากฉันสามารถหาเกณฑ์มาตรฐานอื่น ๆ ได้ฉันจะโพสต์ไว้
Richard Cleverley

ขอบคุณ Richard ไม่ได้พูดคุยกับ บริษัท โฮสติ้งของฉันเกี่ยวกับเรื่องนี้ พวกเขามีประสบการณ์มากขึ้นกับสิ่งที่ฉันคิดแบบนี้ หากฉันมีข้อมูลอีกหนึ่งฉันจะโพสต์มัน
Sander Mangel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.