как ускорить выполение sql запроса
Александр Петросян (PAF) 31.10.2002 10:24
/ 31.10.2002 10:25
павел, высший балл за subject!
есть ещё момент соединения с сервером: скажем, с oracle соединение относительно медленное, и лучше использовать mod_parser3 или isapi версию, которая кэширует соединения. а если и использовать cgi вариант, то только с ^cache, уменьшающем количество соединений с базой до разумного минимума.
по второй части вопроса: mysql замечен за медленным выполнением сложных многотабличных запросов.
однако в большинстве случаев лучше оставить его работу ему. если вы начнёте делать её сами на parser, вы будете обрабатывать большие объёмы, и вам может не хватить памяти, поскольку parser расчитан на
сборку страницы из частей, а вовсе не на обработку тысячестрочных таблиц в поиске пары записей.
диагноз:
1. непременно используйте ^cache(…){^connect[…]{…}}, чтобы
просто не выполнять лишний раз sql запросы, не нагружать sql-сервер;
2. поручайте максимум работы sql серверу, он для того и задуман=оптимизирован;
3. всегда проверяйте качество сложного запроса explain'ом, так вы поймёте, не забыли ли где создать индекс, и нет ли других подводных камней.