|
|
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
Есть несколько одинаковых баз данных, в их таблицах присутствует составной ключ int int [номер БД][номер записи в таблице] За прошедшее время базы разрослись и поиск стал узким местом. Можно ли объединить этот составной ключ в один, а потом его сделать индексом, или же сделать составной индекс типа ALLTRIM(STR(idDB)) + '_' + ALLTRIM(STR(idREC)) Что лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 08:35 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
Pr0teusЕсть несколько одинаковых баз данных, в их таблицах присутствует составной ключ int int [номер БД][номер записи в таблице] За прошедшее время базы разрослись и поиск стал узким местом. Можно ли объединить этот составной ключ в один, а потом его сделать индексом, или же сделать составной индекс типа ALLTRIM(STR(idDB)) + '_' + ALLTRIM(STR(idREC)) Что лучше?Только без ALLTRIM(), т.е. STR(idDB), N) + STR(idREC, M) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:52 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
STR(idDB, N) + STR(idREC, M) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:53 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
2 Владимир А можно пояснить почему без ALLTRIM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 12:01 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
А можно пояснить почему без ALLTRIM Индексный ключ не может иметь переменую длину ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 12:06 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:11 |
|
||
|
Формирование составного ключа
|
|||
|---|---|---|---|
|
#18+
Для преобразования полей типа Integer в строку, в данном случае, лучше использовать функцию BinToC(). Т.е. выражение индекса будет иметь вид BinToC(idDB)+BinToC(idREC) Выражение просто физически будет короче. Как следствие, меньше по объему индексный тег. Меньше размер индексного файла (в байтах). Быстрее поиск. Поле типа Integer принимает значение от –2,147,483,648 до 2,147,483,647. Это значит, что при использовании STR() длина символьного ключа составит 10+10=20 символов (символ подчеркивания - лишний). А при использовании BinToC() длина ключа будет 4+4=8 символов. В 2,5 раза короче! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 00:55 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34311967&tid=1589918]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 358ms |

| 0 / 0 |
