ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Оптимизация sql запросов...
  #1  
Старый 25.06.2008, 17:53
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию Оптимизация sql запросов...

МОжет ли кто нибудь дать советы по оптимизации скл запросов... И примеры кэширования?
 
Ответить с цитированием

  #2  
Старый 25.06.2008, 18:32
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

Ну из самого простого, но не менее важного,

- это правильные индексы!!!!(их не так уж и мало)
- правильный формат данных (если дата, то "timestamp", если флаг, то "bool")
- если нужно выбрать только title, то пишем
"SELECT title FROM table", а не "SELECT * FROM table" Это важно!!!
- использование функций (MAX(), MIN(), NOW()), а не придумывать велосипед, функций очень много
- UNIQUE индексы быстрее, чем индексы не по уникальным полям
- использование точных значений
- Поля NOT NULL экономят место и исключают проверки
- Вместо text лучше использовать character varying(255), или меньше
- Чем меньше размер типа, тем лучше (int, tinyint)
- Использовать наиболее простые запросы SQL. Т.е. без всяких подзапросов, с наименьшим числом объединений данных таблиц и условий, ну и т.п.
- объединять данные в одну таблицу, дабы уменьшить число SQL запросов
- НОРМАЛИЗАЦИЯ ТАБЛИЦ!!!!!


Кэширование:
Цитата:
http://www.mysql.com/doc/ru/Query_Cache.html
Вообще нужно сначала иследовать бд
сделать "VACUUM ANALYZE"
(EXPLAIN [ ANALYZE ] [ VERBOSE ])

Последний раз редактировалось Naydav; 25.06.2008 в 18:37..
 
Ответить с цитированием

  #3  
Старый 25.06.2008, 19:14
Jer1cho
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме:
3942177

Репутация: 244
Отправить сообщение для Jer1cho с помощью ICQ
По умолчанию

Вот очень интересная статья:
http://habrahabr.ru/blog/sql/45174.html
 
Ответить с цитированием

  #4  
Старый 25.06.2008, 19:40
mouse.pro
Участник форума
Регистрация: 06.12.2006
Сообщений: 174
Провел на форуме:
1700952

Репутация: 199
Отправить сообщение для mouse.pro с помощью ICQ
По умолчанию

Мне нужно сделать запрос:
Скопировать из таблицы test все строки в таблицу test2 где id='1'
Я решил сделать так:
select * from test1 where id='1' into outfile 'tmp.txt'
load data infile 'tmp.txt' into table test2

Можно как-то проще сделать?
 
Ответить с цитированием

  #5  
Старый 25.06.2008, 19:46
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

Ну так как ты копируешь, точно не правильно
Вернее это извращение!

Правильно
Цитата:
insert into test2 (select * from test1 where id=1)

Последний раз редактировалось Naydav; 25.06.2008 в 19:50..
 
Ответить с цитированием

  #6  
Старый 25.06.2008, 19:50
mouse.pro
Участник форума
Регистрация: 06.12.2006
Сообщений: 174
Провел на форуме:
1700952

Репутация: 199
Отправить сообщение для mouse.pro с помощью ICQ
По умолчанию

Цитата:
Сообщение от Naydav  
Ну так как ты копируешь, точно не правильно
Вернее это извращение!

Правильно
Ну это я не сам писал запрос, мне подсказали как знали.
Спасибо, твой запрос помог)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
SQL инъекция и Oracle, часть 2 k00p3r Чужие Статьи 0 13.06.2005 11:24
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ