Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
reg almail
1

Как правильно создать индекс для уменьшения на базу данных?

21.11.2012, 19:08. Показов 1450. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, коллеги.
Имею таблицу с одним "уникальным" полем `msg_id`
Есть запрос:
SELECT *
FROM uned_ned as msg
WHERE `msg`.`show` = '1' AND
( `msg`.`obl_id` in (177, 277) OR (`msg`.`obl_id` in (77) AND `msg`.`site_id`='mysite.ru') )
AND `obl_id` = '177' AND `city_id` = '283'
AND `typ` = 'kv' AND `way` = 'pr' AND msg_id < 301227 AND msg.puttime<now()
ORDER BY `msg`.`updtime` DESC
Вопросы:
1. Как правильно создать индекс для уменьшения на базу данных при выполнении данного запроса?
2. Изменяется ли нагрузка на базу данных `msg`.`obl_id` in (177) либо `msg`.`obl_id` = '177'
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2012, 19:08
Ответы с готовыми решениями:

Ребята как правильно сделать базу данных для данного проекта
я создал проект но в базах не селен прошу помощи в создании базы данных чтоб можно было сохранять и...

Как создать базу данных имен людей и их описание, в текстовом файле (блокноте) для введения данных Stream.writer
Хочу создать базу данных для имен людей и их данных с помощью метода Stream.Writer и сохранить...

Как создать базу данных для хранения информации?
У меня вопрос как создать базу данный для хранения информации например биографию о ком ни будь и...

Как создать сетевую базу данных на Delphi для MAC OC?
Как создать сетевую базу данных на Delphi для MAC OC?

2
2 / 2 / 0
Регистрация: 15.09.2009
Сообщений: 10
22.11.2012, 13:37 2
Теоретически надо создавать комбинированный индекс в который будут входить все поля, по которым производится отбор. Заодно посмотрите как влияет OR на выборку (кажется в этом случае индекс не используется, но лучше не верьте на слово, а посмотрите документацию).
После создания индекса можно воспользоваться explain и посмотреть, применяется ли Ваш индекс в запросе. А дальше действия по результатам команды explain
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
22.11.2012, 13:47 3
Обычно при решении вопроса о создании идекса анализируется не один запрос, а несколько наиболее "тяжелых", т.е. тех, которые выполняются наибольшее время и/или чаще других. Поскольку индекс, подходящий для одного запроса, может не подходить для другого.
0
22.11.2012, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2012, 13:47
Помогаю со студенческими работами здесь

Как создать запрос PDO для записи данных в базу
Как создать запрос PDO что бы данные записались в базу? Например: Есть таблица пользователей с...

Как создать страницу для добавления новых записей в базу данных?
Есть приложение, список компаний с разными параметрами( e-mail,телефон и т.д.). Можно ли создать...

Как изменить базу данных по умолчанию или исползовать свою базу данных для администрирование
Привет всем! Создаю новый проект на asp.net но при администрирование проекта visual studio 2012...

Как правильно создать базу?
всем доброго времени суток) хочу создать прогу БД отдела кадров на делфи, а сам БД на оракле......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru