v4.8.x SQL Error! Out of sort memory

Thema wurde von Cyrus (LeGong), 18. Januar 2024 erstellt.

  1. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.434
    Danke erhalten:
    342
    Danke vergeben:
    176
    #1 Cyrus (LeGong), 18. Januar 2024
    Zuletzt bearbeitet: 18. Januar 2024
    Nach Umstellung von MySQL 5.7 auf MySQL 8.0 bekomme ich den folgenden Fehler beim Abruf von gesamten Produkt Category:
    Code:
    Unexpected error occurred...
    SQL Error! Out of sort memory, consider increasing server sort buffer size Query: SELECT DISTINCT p.products_fsk18, p.products_shippingtime, p.use_properties_combis_shipping_time, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, p.gm_show_weight, pd.products_short_description, pd.products_description, pd.gm_alt_text, pd.products_meta_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id , ROUND(IF(s.status = "1" AND p.products_id = s.products_id, s.specials_new_products_price, p.products_price), 2) AS final_price ,p.products_content,p.products_feature,p.products_package,p.products_fabrication,p.products_taste,p.products_variety,p.products_type,p.products_treatment,p.products_lactose,p.products_fat,p.products_maturity,p.products_calorie,p.products_protein,p.products_carbohydrate,p.products_calcium,p.products_salt,p.products_gluten,p.products_glutamate,p.products_prime_cost,p.products_additives FROM products AS p LEFT JOIN products_description AS pd ON (pd.products_id = p.products_id) LEFT JOIN manufacturers AS m ON (m.manufacturers_id = p.manufacturers_id) LEFT JOIN specials AS s ON (s.products_id = p.products_id) LEFT JOIN feature_set_to_products AS fstp ON (fstp.products_id = p.products_id) LEFT JOIN feature_index AS fi ON (fstp.feature_set_id = fi.feature_set_id) LEFT JOIN categories_index AS ci ON (ci.products_id = p.products_id) WHERE p.products_status = 1 AND pd.language_id = "2" AND ci.categories_index LIKE "%-58-%" AND p.group_permission_1 = 1 ORDER BY p.products_sort ASC, p.products_id ASC , p.products_sort ASC
    
    Abruf von einzelnen Kategorien funktioniert einwandfrei.

    Test-Shop-Version: 4.8.0.2
     
  2. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.434
    Danke erhalten:
    342
    Danke vergeben:
    176
    Ich gehe davon aus, dass keine eine Antwort zu diesem Problem hat! Oder?
     
  3. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.734
    Danke erhalten:
    1.333
    Danke vergeben:
    305
    @Cyrus (LeGong)
    Eigentlich steht alles in der Fehlermeldung was die Lösung ist. Kontaktiere deinen Hoster um auf dem MySQL Server die sort buffer size zu erhöhen.
     
  4. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.434
    Danke erhalten:
    342
    Danke vergeben:
    176
    @Till (Gambio)
    hallo Till und Danke für deine Antwort. So habe ich es auch verstanden. Dann war ich am verzweifeln als ich dies gelesen habe:

    [​IMG] Warning
    Changing sort_buffer_size can reduce query performance, increase overall memory consumption, and even crash your cluster. This process is highly specific to your workload and we do not recommend changing the default value. Please read its potential use cases and disclaimers before changing it.

    Ich habe das Problem auch bei meinem Hoster gemeldet. Sie wollten wissen wie es dazu gekommen ist. Habe ich auch die Umstellung ausgeschildert. Nun warte ich auf eine Antwort.

    Würde gerne deine Meinung dazu hören.
    Außerdem ist es überhaupt Ratsam auf MySQL 8.0 umzusteigen? Oder solte man erstmals bei MySQL 5.7 bleiben. Unter MySQL 5.7 habe ich das Problem ja nicht.
    LG

    Cyrus
     
  5. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.105
    Danke erhalten:
    971
    Danke vergeben:
    343
    Du kannst ja mal die jeweiligen Werte vergleichen via Gambio-Admin > Toolbox > SQL

    Code:
    show variables like 'sort_buffer_size';
    Wenn da z.B. unter MySQL 8.0 etwas niedrigeres angezeigt wird als bei 5.7, kannst Du Deinem Hoster ziemlich genau beantworten, wie es dazu gekommen ist ;)

    Btw:
    Einmal p.products_sort ASC reicht.
     
  6. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.434
    Danke erhalten:
    342
    Danke vergeben:
    176
    Code:
    show variables like 'sort_buffer_size';
    Ja Danke für den Tipp.
    Sehr große Unterschied! Bei:
    5.7 = 1048576
    8.0 = 262144

    Bei dem "p.products_sort ASC" habe ich mich auch gewundert. Aber ich habe da nichts geändert. Das ist in dem Programm von Gambio.

    Vieln Dank

    LG

    Cyrus
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    455
    Danke erhalten:
    52
    Danke vergeben:
    75
    Also ich habe bei all-ink.com auf meinem Server XL den Wert 8388608 ;). Allerdigs kostet mich der Server auch 199,00 EUR monatlich.