![]() |
|
Модераторы: skyboy |
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
В запросах используется всегда один индех на таблицу. Этому меня умная книжка научила. Если делаешь JOIN то индех считай уже ушёл на составление таблиц. Советуют пользоваться двойными индексами, вот только пока не разбирался, но положительных результатов пока не было...
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 4 Всего: 69 |
Хм... странно вообще-то. Но индексы, поля котороых присутствуют в условии WHERE, ведь там он используется вместе?! Или я опять ошибаюсь.... -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
в смысле? никто ж не говорит, что индексы могут быть только "однопольные" - индекс может распространяться на несколько полей. Но применяться будет только один индекс. и странного я не вижу: как можно несколько индексов одновременно использовать? я не представляю |
|||
|
||||
| -=Ustas=- |
|
||||||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 4 Всего: 69 |
Хорошо. Допустим, банальный пример из выше-приведенной таблицы. Если использовать множественный индекс по правостороннему принципу (по-моему так правильно назыввается
То тогда все пучком, запрос, типа
Выполняется ИДЕАЛЬНО, с использованием этих трех индексов, Using filesort нету, и правильно. Но... тогда что получается, если мне нужен другой запрос, типа:
То я должен для этого запроса создавать отдельный множественный индекс??? Т.к. уже индекс all не используется на данный запрос. Неужели все-таки нужно создавать каждые индексы на какие-нить индивидуальные запросы? Тогда и места на диске не напасешься -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||||||
|
|||||||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
нету там трех индексов. ну, если принимать в расчет только
и не надо "на все случаи жизни". при нормализации по 5 НФ вообще можно обойтись только индексом на поле первичного ключа |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 4 Всего: 69 |
Т.е.? 5 НФ? Да ну, не думаю что это будет оптимально -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
На практике применяются, обычно, первые три нормальные формы. Пятая все же крайне нормализованная
-------------------- Теперь при чем :P |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
Ignat, зато и в самом деле - более одного индекса на таблицу понадобиться просто не может
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 4 Всего: 69 |
Какие еще формы? Пятая, третья.... Что то я вас, ребята, не понимаю Дык, а если у таблицы связей много... Добавлено @ 18:45 Такс, пошел домой книгу изучать.... Хотя главы про индексы уже перечитывал несколько раз. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Значит таблица не находится в 5НФ
Почитай лучше теорию реляционных БД ;) -------------------- Теперь при чем :P |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
| muzer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 31.8.2006 Репутация: 30 Всего: 31 |
Сколько у вас строк в таблице, что вы так боитесь filesort'а?
Когда объём данных переваливает за тот предел, при котором ORDER BY без индекса реально тормозит и исправить это разумным кол-вом индексов нельзя - нужно задуматься о создании избыточности данных, путём хранения в разных таблицах одного и того же в разном разрезе с разными индексами. sergejzr, как было выяснено несколькими топиками ниже - пятая версия mysql умеет использовать несколько индексов от одной таблицы. Считаю, нормальные формы нужно знать, чтобы уметь правильно мыслить при проектировании базы данных. Больше нормальные формы ни для чего не нужны, т.е. нельзя их в чистом виде использовать для построения бд. Это сообщение отредактировал(а) muzer - 28.9.2006, 21:34 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
что понимается под "чистым" видом? насколько часто необходимо идти "вразрез" с первой НФ(насколько я помню - это требование к "атомарности" единицы данных - поля)? |
|||
|
||||
| muzer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 31.8.2006 Репутация: 30 Всего: 31 |
Под чистым видом понимается приведение структуры БД строго к какой-либо нормальной форме. На практике чаще всего есть частичное соответствие той или иной НФ, но т.к. определения НФ не подразумевают частичного соответствия, то я и говорю, что они служат только для развития мышления.
Хм..приходится. Когда нужно хранить список значений (являющихся праймари в другой таблице) переменной длины без необходимости использовать его в джойнах. Например, данные для загрузки в какую-либо программу. Хранить "вертикально" - очень затратно, большой объём получится, неповоротливая таблица. Это сообщение отредактировал(а) muzer - 29.9.2006, 01:40 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |