ฉันมีสถานการณ์ต่อไปนี้:
ประมาณ 5 ครั้งต่อสัปดาห์ (ไม่เกี่ยวข้องกับสถานการณ์ใด ๆ เช่นแคชชัดเจนปริมาณการเข้าชม) บางคำสั่งติดอยู่กับการส่งข้อมูล ( show processlist
):
> SELECT `main_table`.`entity_id`, `main_table`.`level`, `main_table`.`path`, `main_table`.`position`,
> `main_table`.`is_active`, `main_table`.`is_anchor`,
> `main_table`.`name`, `url_rewrite`.`request_path` FROM
> `catalog_category_flat_store_30` AS `main_table`
> LEFT JOIN `core_url_rewrite` AS `url_rewrite` ON url_rewrite.category_id=main_table.entity_id AND
> url_rewrite.is_system=1 AND url_rewrite.product_id IS NULL AND
> url_rewrite.store_id='30' AND url_rewrite.id_path LIKE 'category/%'
> WHERE (path LIKE '1/2/%') AND (main_table.store_id = '30') AND
> (is_active = '1') AND (include_in_menu = '1') ORDER BY name ASC
อันที่สอง:
> SELECT `main_table`.`entity_id`, main_table.`name`, main_table.`path`,
> `main_table`.`is_active`, `main_table`.`is_anchor`,
> `main_table`.`manually`, `url_rewrite`.`request_path` FROM
> `catalog_category_flat_store_10` AS `main_table` LEFT JOIN
> `core_url_rewrite` AS `url_rewrite` ON
> url_rewrite.category_id=main_table.entity_id AND
> url_rewrite.is_system=1 AND url_rewrite.product_id IS NULL AND
> url_rewrite.store_id='10' AND url_rewrite.id_path LIKE 'category/%'
> WHERE (main_table.is_active = '1') AND (main_table.include_in_menu =
> '1') AND (main_table.path like '1/2/1528/1569/%') AND (`level` <= 4)
> ORDER BY `main_table`.`position` ASC
ข้อความค้นหาเหล่านี้เกี่ยวข้องกับการสร้างเมนูนำทาง พวกเขาทำงานโดยไม่มีปัญหาใด ๆ และรวดเร็วมากตลอดเวลา
มีข้อสงสัยอื่น ๆ เกิดขึ้นสองสามครั้งต่อเดือนในการเก็บข้อมูลหรือรอการล็อคตาราง:
INSERT INTO `catalogsearch_result` SELECT 316598 AS `query_id`, `s`.`product_id`, MATCH (s.data_index) AGAINST ('STRING HERE' IN BOOLEAN MODE) AS `relevance` FROM `catalogsearch_fulltext` AS `s`
INNER JOIN `catalog_product_entity` AS `e` ON e.entity_id = s.product_id WHERE (s.store_id = 38) AND (MATCH (s.data_index) AGAINST ('STRING HERE' IN BOOLEAN MODE)) ON DUPLICATE KEY UPDATE `relevance` = VALUES(`relevance`)
(ค้นหาที่เกี่ยวข้อง)
ข้อมูลเพิ่มเติม:
- core_url_rewrite - บันทึก 3M (30 เว็บไซต์, 100k ผลิตภัณฑ์)
- catalog_category_flat_store_ * - 2000 บันทึก (เปิดใช้งานหมวดหมู่แบบเรียบ)
นี่ทำงานบนการตั้งค่าโดยใช้ vmware บนฮาร์ดแวร์ขนาดใหญ่ (mysql master มี 8 คอร์ที่จัดสรรและ 64Gb of RAM, SSD ดิสก์บนที่เก็บข้อมูล SAN), mysql ได้รับการปรับปรุงและตรวจสอบอย่างต่อเนื่อง มีปัญหาบางอย่างในอดีตที่เกี่ยวข้องกับ I / O (บางฉบับมีลิงก์ระหว่างเซิร์ฟเวอร์และที่เก็บข้อมูล SAN)
เราไม่สามารถระบุปัญหาได้เนื่องจากการทำงานบนโลหะเปลือย (ไม่มีการจำลองเสมือน, การกำหนดค่าแบบเดียวกัน) สิ่งนี้จะไม่เกิดขึ้นเลยในสภาวะที่มีความเครียดสูง (ใช้สถานการณ์การทดสอบการล้อม + โหลดการโหลดไม่มีแคช)
ใครที่มีปัญหาคล้ายกัน
UPDATE:
reindexAll การค้นหาถูกย้ายไปที่ตารางชั่วคราว (ดังนั้นจึงไม่ล็อคตารางหลักที่ใช้โดยการผลิตแล้วเปลี่ยนชื่อตาราง tmp) ดังนั้นกระบวนการทำดัชนีใหม่จะไม่รบกวนผู้เข้าชมที่ค้นหาเว็บไซต์ https://github.com/magendooro/magento-fulltext-reindexรุ่งโรจน์ไปยัง carco