Ich habe folgende Situation:
Ungefähr 5 Mal pro Woche (nicht im Zusammenhang mit einer bestimmten Situation wie Cache löschen, Verkehrsspitze) bleiben einige Abfragen beim Senden von Daten hängen ( 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
das Zweite:
> 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
Diese Abfragen beziehen sich auf das Generieren des Navigationsmenüs. Sie laufen ohne Probleme und sehr schnell.
Einige Male im Monat bleiben einige andere Abfragen beim Aussetzen von Daten oder beim Warten auf die Tabellensperre hängen:
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`)
(suchbezogen)
Zusätzliche Information:
- core_url_rewrite - 3 Millionen Datensätze (30 Websites, 100.000 Produkte)
- catalog_category_flat_store_ * - 2000 Datensätze (flache Kategorien verwenden ist aktiviert)
Dies läuft auf einem Setup mit VMware auf einer riesigen Hardware (MySQL-Master verfügt über 8 zugewiesene Kerne und 64 GB RAM, SSD-Festplatten in einem SAN-Speicher), MySQL wurde optimiert und wird kontinuierlich überwacht. In der Vergangenheit gab es einige Probleme im Zusammenhang mit E / A (einige Probleme mit der Verbindung zwischen den Servern und dem SAN-Speicher).
Wir konnten das Problem nicht genau bestimmen, da dies unter Bare-Metal-Bedingungen (keine Virtualisierung, gleiche Konfiguration) unter Bedingungen mit hohem Stress (Ausführen von Belagerungs- + Lasttestszenarien, kein Cache) niemals vorkommt.
Hat noch jemand ähnliche Probleme?
AKTUALISIEREN:
Die reindexAll-Suche wurde in eine temporäre Tabelle verschoben (damit die von der Produktion verwendete Haupttabelle nicht gesperrt und die tmp-Tabelle umbenannt wird). Der Neuindizierungsprozess beeinträchtigt also nicht die Besucher, die die Website durchsuchen. https://github.com/magendooro/magento-fulltext-reindex ein großes Lob an carco