построение индексов на таблице

Dez

Новичок
построение индексов на таблице

Привет. Давно разбирал, хочу уточнить.
Имеется таблица:
a1 b2 c3 d4 sum
.................................

имею первичный ключ: a1 b2 c3 d4.
Вопросы:
1) Это означает, что на таблице уже существуют также индексы:

a1 b2 c3
a1 b2
a1

?
2) Если в выборке не участвует a1 это означает, что мои индексы - по барабану и надо строить еще например: b2 c3 d4 ?
 

zerkms

TDD infected
Команда форума
Это означает, что на таблице уже существуют также индексы:
Нет, не означает - индекс всего один. Но для последовательностей a1+b2, a1, a1+b2+c3 этот индекс будет использоваться (тут есть оговорки, но в некоем приближении именно так)

2. Да, означает.
 

zerkms

TDD infected
Команда форума
prolis
нельзя. условие типа range не позволяет искать по частям индекса правее.

т.е. если есть индекс a+b+c+d, то при условии
a = 1 AND b > 10 AND c = 3 AND d = 4
будет использоваться только часть a+b

ну и чтобы соблюсти регламент: http://dev.mysql.com/doc/refman/5.1/en/range-optimization.html
 

zerkms

TDD infected
Команда форума
FB3
коротко: нет

длинно:
An interval can be used as long as it is possible to determine a single key tuple containing all rows that match the condition

плюс почитай примеры вокруг этой фразы.
 

fixxxer

К.О.
Партнер клуба
Если немного упростить, то можно представить себе вот типа такую записную книжку, только в которой дальше есть такие же закладки по второй букве, третьей и так далее - это как раз индекс. И подумать, в каких случаях это поможет :)
 

zerkms

TDD infected
Команда форума
fixxxer
Угу, когда разговор заходит в тупик и приходится объяснять на пальцах - аналогично рассказываю о записной книжке, отсортированной по Фамилия+Имя ))
 

Dez

Новичок
А я в другой тупик зашел. :( . Пытаться выяснять связи между данными в БД. Программист мол предыдущий свалил и записей не оставил ...
Смотрю мой единственный первичный ключ не удобен.
Там есть таблица продаж(firebird база):
pole1 pole2 pole3 ..... summa
полей штук 20, и на таблице нет первичного ключа и от каких полей зависит сумма - не ясно. Многие поля имеют null - значения и дублируют друг друга.
В самой той базе сделано элементарно просто - индекс на каждый столбик.
Может мне тоже так сделать - для подсчета запросов - это же нормальный вариант?

Такое впечатление, что таблица - это мультимножество просто записей о продажах. Что то ввели что то не ввели в некоторые поля - данные все равно попадают в таблицу продаж. И по ней потом организуются многообразные отчеты.
 

prolis

Новичок
Автор оригинала: Dez
Такое впечатление, что таблица - это мультимножество просто записей о продажах.
Находишь, где в интерфейсе работы с базой добавляются/редактируются эти данные о продажах. Потом смотришь код этого интерфейса, там и будет сопостовление полей.
 

Dez

Новичок
программа на delphi, доступа к исходникам нет. У меня во всяком случае. Да и ввода я в этой программе не вижу - может в другой вводят, а в этой - отчеты.
 

prolis

Новичок
Телепатство. Осталась надежда на понятное наименование полей (не pole1 pole2 pole3). Ну и запустить осознанный отчет в программе, монитором посмотреть отосланный SQL и посмотреть, что он считает в зависимости от отчета.
 

Dez

Новичок
Я вообще то про индексы спрашивал. Если ставить на каждое поле в таблице. Остальное - решаемое.

Уже сделал себе такие индексы. По скорости ухудшений не заметил.
 

prolis

Новичок
Конечно ты не заметил, ты отчеты запускаешь. А те системы, которые импортят продажи в эту базу теперь повесились.
 

Dez

Новичок
Автор оригинала: prolis
Конечно ты не заметил, ты отчеты запускаешь. А те системы, которые импортят продажи в эту базу теперь повесились.
prolis , не чего сказать - так зачем же трепаться ни о чем - невежество свое показывать? ;)
Телепат блин, какие то импортирующие системы досочинял .... Учитесь читать вопросы - о том что спрашивают.
 

prolis

Новичок
Автор оригинала: Dez
программа на delphi, доступа к исходникам нет. У меня во всяком случае. Да и ввода я в этой программе не вижу - может в другой вводят, а в этой - отчеты.
-уличная магия, данные сами там появляются
 
Сверху