длительность запроса в MySQL
Приведи предлагаемые решения:
1. Структура таблиц
2. Индексы
3. Ориентировочное кол-во записей в каждой таблице и прирост
4. Какие запросы наиболее критичны по времени.
Приведи предлагаемые решения:Большая таблица:
1. Структура таблиц
2. Индексы
3. Ориентировочное кол-во записей в каждой таблице и прирост
id(int) | date(datetime) | field1(int) | field2(int) | trash1,2,3,4(varchar)
Малые таблицы:
id(int) | date(datetime) | field1(int) | trash1,2(varchar)
id(int) | date(datetime) | field2(int) | trash3,4(varchar)
Поиск ведётся по field1 и field2, индексы на них.
Про объёмы и прирост информации пока нет. Предположительное количество записей - 50 000.
Так по чему бы их не объединить?
смысл в том, что при внесении записи заполняются все приведённые поля, будь они в составе одной большой таблицы или обеих малых. Поиск в 60% случаев ведётся по field1 и field2 одновременно, в 20% только по field1 и в 20% только по field2.
В таблице (в большой или каждой из малых) 50000 записей. Вопрос в том, какую модель использовать лучше в плане скорости, нагрузки на сервер.
Объединить - это в одну таблицу или две таблицы в одном запросе?
Разносить данные(которые одновременно заполняются) по двум таблицам имеет смысл только если данные в одной из таблиц используются крайне редко.
Индексы друг другу не мешают, мешают только вставке: чем больше индексов тем дольше вставлять одну строку.
В твоём случае я бы подумал об одном индексе сразу по двум полям скажем (field1, field2) он покроет 80% запросов, если не жалко то к нему можно добавить ещё индекс по field2 он покроет оставшиеся 20%.
благодарю
Ну и вообще по уму всегда надо следовать правилам нормальных форм и не нарушать их.
А если надо оптимизировать скорость - делать представление(view) или там другие всякие технологии.
А если надо оптимизировать скорость - делать представление(view) или там другие всякие технологии.view в mysql не может ускорить исполнение.
Оставить комментарий
Virineia
Стоит дилемма перед выбором - делать одну большую таблицу или две поменьше. Между таблицами поменьше взаимооднозначное соответствие, т.е., количество записей в каждой из них равно количеству записей в большое таблице. Внесённые данные будут использоваться для поиска, соответственно, поля будут индексироваться, эти же поля и предполагается разнести по разным малым таблицам.Вопрос: что оптимальнее, когда поиск будет идти одновременно по обоим полям? Будут ли мешать друг другу индексы в составе одной таблицы или же бОльшие помехи создаст то, что понадобится поиск одновременно по двум таблицам?