reg almail
|
|
1 | |
Как правильно создать индекс для уменьшения на базу данных?21.11.2012, 19:08. Показов 1450. Ответов 2
Метки нет (Все метки)
Добрый день, коллеги.
Имею таблицу с одним "уникальным" полем `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' |
21.11.2012, 19:08 | |
Ответы с готовыми решениями:
2
Ребята как правильно сделать базу данных для данного проекта Как создать базу данных имен людей и их описание, в текстовом файле (блокноте) для введения данных Stream.writer Как создать базу данных для хранения информации? Как создать сетевую базу данных на Delphi для MAC OC? |
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 | |
22.11.2012, 13:47 | |
Помогаю со студенческими работами здесь
3
Как создать запрос PDO для записи данных в базу Как создать страницу для добавления новых записей в базу данных? Как изменить базу данных по умолчанию или исползовать свою базу данных для администрирование Как правильно создать базу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |