![]() |
Оптимизация sql запросов...
МОжет ли кто нибудь дать советы по оптимизации скл запросов... И примеры кэширования?
|
Ну из самого простого, но не менее важного,
- это правильные индексы!!!!(их не так уж и мало) - правильный формат данных (если дата, то "timestamp", если флаг, то "bool") - если нужно выбрать только title, то пишем "SELECT title FROM table", а не "SELECT * FROM table" Это важно!!! - использование функций (MAX(), MIN(), NOW()), а не придумывать велосипед, функций очень много - UNIQUE индексы быстрее, чем индексы не по уникальным полям - использование точных значений - Поля NOT NULL экономят место и исключают проверки - Вместо text лучше использовать character varying(255), или меньше - Чем меньше размер типа, тем лучше (int, tinyint) - Использовать наиболее простые запросы SQL. Т.е. без всяких подзапросов, с наименьшим числом объединений данных таблиц и условий, ну и т.п. - объединять данные в одну таблицу, дабы уменьшить число SQL запросов - НОРМАЛИЗАЦИЯ ТАБЛИЦ!!!!! Кэширование: Цитата:
сделать "VACUUM ANALYZE" (EXPLAIN [ ANALYZE ] [ VERBOSE ]) |
Вот очень интересная статья:
http://habrahabr.ru/blog/sql/45174.html |
Мне нужно сделать запрос:
Скопировать из таблицы test все строки в таблицу test2 где id='1' Я решил сделать так: select * from test1 where id='1' into outfile 'tmp.txt' load data infile 'tmp.txt' into table test2 Можно как-то проще сделать? |
Ну так как ты копируешь, точно не правильно
Вернее это извращение! Правильно Цитата:
|
Цитата:
Спасибо, твой запрос помог) |
| Время: 09:40 |