ФорумРазработкаУстановка и администрирование ПОСерверы баз данных → Топ-100 советов по производительности MySQL

Топ-100 советов по производительности MySQL

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 13 марта 2009 г. 18:15


    1. Use EXPLAIN to profile the query execution plan
    2. Use Slow Query Log (always have it on!)
    3. Don't use DISTINCT when you have or could use GROUP BY
    4. Insert performance
    1. Batch INSERT and REPLACE
    2. Use LOAD DATA instead of INSERT
    5. LIMIT m,n may not be as fast as it sounds
    6. Don't use ORDER BY RAND() if you have > ~2K records
    7. Use SQL_NO_CACHE when you are SELECTing frequently updated data or large sets of data
    8. Avoid wildcards at the start of LIKE queries
    9. Avoid correlated subqueries and in select and where clause (try to avoid in)
    10. No calculated comparisons – isolate indexed columns
    11. ORDER BY and LIMIT work best with equalities and covered indexes
    12. Separate text/blobs from metadata, don't put text/blobs in results if you don't need them
    13. Derived tables (subqueries in the FROM clause) can be useful for retrieving BLOBs without sorting them. (Self-join can speed up a query if 1st part finds the IDs and uses then to fetch the rest)
    14. ALTER TABLE…ORDER BY can take data sorted chronologically and re-order it by a different field – this can make queries on that field run faster (maybe this goes in indexing?)
    15. Know when to split a complex query and join smaller ones
    16. Delete small amounts at a time if you can
    17. Make similar queries consistent so cache is used
    18. Have good SQL query standards
    19. Don't use deprecated features
    20. Turning OR on multiple index fields (<5.0) into UNION may speed things up (with LIMIT), after 5.0 the index_merge should pick stuff up.
    21. Don't use COUNT * on Innodb tables for every search, do it a few times and/or summary tables, or if you need it for the total # of rows, use SQL_CALC_FOUND_ROWS and SELECT FOUND_ROWS()
    22. Use INSERT … ON DUPLICATE KEY update (INSERT IGNORE) to avoid having to SELECT
    23. use groupwise maximum instead of subqueries


    Читать далее...
    adw/0
  • PandoraBox2007

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 16 декабря 2011 г. 22:02, спустя 1008 дней 4 часа 46 минут

    В добавок, не юзать офф продукт от Оракла лучше Percona или MariaDB
  • Inavin

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 16 августа 2012 г. 8:00, спустя 243 дня 8 часов 57 минут

    В добавок, не юзать офф продукт от Оракла лучше Percona или MariaDB


    У оракла есть продукт для MySQL?
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 18 августа 2012 г. 0:06, спустя 1 день 16 часов 6 минут

    У оракла есть продукт mysql
    ιιlllιlllι унц-унц
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 18 августа 2012 г. 4:07, спустя 4 часа 13 секунд

    ссыль не туда перекидывает
  • lеkafe

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 4:11, спустя 4 минуты 24 секунды

    Просто иди на хуй…
  • lеkafe

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 4:25, спустя 13 минут 59 секунд

    phpdude, послушай, что за негатив?
  • lеkafe

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 4:33, спустя 7 минут 52 секунды

    phpdude, мне на тебя срать, я ее больше тебя не уважаю, иди в песду
  • lеkafe

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 4:43, спустя 9 минут 44 секунды

    хуй
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 18 августа 2012 г. 6:46, спустя 2 часа 3 минуты 32 секунды

    кто-то надругался над Фёдором. тут два кафе, честно говоря лень разбираться есть ли разница. того, что недавно зарегался я грохнул.

    Федя, смени аву и подпись для определенности.
    p.s. сам поменял аву боту. чего-то я добрый сегодня
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!