Tôi có tình huống sau:
Khoảng 5 lần một tuần (không liên quan đến bất kỳ tình huống cụ thể nào như xóa bộ nhớ cache, tăng lưu lượng truy cập) một số truy vấn bị kẹt khi gửi dữ liệu ( 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
cái thứ hai:
> 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
Các truy vấn này có liên quan đến việc tạo menu điều hướng. Họ chạy mà không có vấn đề gì và rất nhanh mọi lúc.
Vài lần một tháng, một số truy vấn khác bị kẹt trong dữ liệu an toàn hoặc chờ khóa bảng:
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`)
(liên quan đến tìm kiếm)
Thông tin bổ sung:
- core_url_rewrite - Bản ghi 3M (30 trang web, sản phẩm 100k)
- catalog_carget_flat_store_ * - 2000 bản ghi (sử dụng danh mục phẳng được bật)
Điều này đang chạy trên một thiết lập sử dụng vmware trên một số phần cứng lớn (mysql master có 8 lõi được phân bổ và 64Gb RAM, ổ SSD trên bộ lưu trữ SAN), mysql được tối ưu hóa và được theo dõi liên tục. Có một số vấn đề trong quá khứ liên quan đến I / O (một số hiện tại có liên kết giữa các máy chủ và bộ lưu trữ SAN).
Chúng tôi không thể xác định chính xác vấn đề vì chạy trên kim loại trần (không ảo hóa, cùng cấu hình) điều này không xảy ra bao giờ, trong điều kiện căng thẳng cao (chạy bao vây + kịch bản kiểm tra tải, không có bộ đệm).
Bất cứ ai khác có vấn đề tương tự?
CẬP NHẬT:
reindexTất cả tìm kiếm đã được chuyển sang một bảng tạm thời (vì vậy nó không khóa bảng chính được sản xuất sử dụng, sau đó đổi tên bảng tmp). Vì vậy, quá trình reindex không can thiệp vào khách truy cập tìm kiếm trang web. https://github.com/magendooro/magento-fulltext-reindex kudos để carco