|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
Чем больше записей, тем лучше будут сжиматься GUID ключи Разницы в 14 раз конечно нет - сравни кол-во страниц идексов. Правда, индекс по int оказался слабее заполнен - это от того, что ты задом наперёд INT ключи вставлял. Если бы вставлял последовательно, то заполнение было бы гораздо выше. Но для честного сравнения с GUID нужно генерить случайные значения. Ну а для эмуляции ПК - каверное всё же последовательно возрастающие. На кол-во расщеплений страниц индекса влияет как распределение значений ключей (случайное для GUID против последовательного для INT), так и заполненность страниц. Так что я бы сказал, что для ПК-GUID конкуренция за вставку в индекс должна быть гораздо ниже, чем для последовательных INT значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 17:02 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
hvladя бы сказал, что для ПК-GUID конкуренция за вставку в индекс должна быть гораздо ниже, чем для последовательных INT значений.А как можно понять, что при работе 100500 коннектов на вставку некоторые из них будут томиться в ожидании именно индекса (а не генератора, скажем; при условии, что я дёргаю gen_id с шагом 1, а не "пачками") ? В логе сервера всё равно ничего не увидишь :( ЗЫ. Кстати, в "одной другой субд" уже давно есть (числовые) индексы реверсивного ключа - как раз для предотвращения конфликтов крайнюю индексную страницу дерева при многочисленных вставках. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 17:20 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
ТаблоидА как можно понять, что при работе 100500 коннектов на вставку некоторые из них будут томиться в ожидании именно индекса (а не генератора, скажем; при условии, что я дёргаю gen_id с шагом 1, а не "пачками") ? Ни как. Разве что смотреть вывод lock print для классика. ТаблоидВ логе сервера всё равно ничего не увидишь :(А при чём тут лог сервера ? Напомню - он существует исключительно для информации о ошибках, в основном о фатальных (и для твоих любимых сетевых ) ТаблоидЗЫ. Кстати, в "одной другой субд" уже давно есть (числовые) индексы реверсивного ключа - как раз для предотвращения конфликтов крайнюю индексную страницу дерева при многочисленных вставках. Пиши udf, если это для тебя настолько важно. Только я тебе сразу скажу - при твоих десятках индексов на таблицу это не поможет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 17:32 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
hvlad(и для твоих любимых сетевых )я думаю, они тут многими горячо "любимы". Разговор про них начался больше года назад... "Но это уже совсем другая история" (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 18:12 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
Всем привет, вопрос а тройке-четверке FB не планируется добавить GUID тип? ну чтобы он хранился как бинари (16 байт) и кастился в строку? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 10:54 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
eXandr, в тройке точно нет. Да и в четвёрке вряд ли. А нафига? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 11:09 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
eXandr, в 2.5 добавлены функции char_to_uuid, uuid_to_char, gen_uuid. все работает с CHAR(16) CHARACTER SET OCTETS. см. документацию, стр 350. http://www.ibase.ru/firebird/Firebird_2_5_Language_Reference_RUS.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:03 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
поправка - gen_uuid еще в 2.1 появился. однако, вопрос с "непоследовательностью" gen_uuid все равно остается. В MS SQL есть newsequentialid " Можно воспользоваться для формирования идентификаторов GUID функцией NEWSEQUENTIALID, что позволяет уменьшить конфликты страниц на конечном уровне индексов. " Иначе вставка в такой ПК раза в три медленнее (в ФБ, тест Таблоида и Ковязина). писать feature request в трекер? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:22 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
kdvоднако, вопрос с "непоследовательностью" gen_uuid все равно остается. Лично я бы uuid-ключи генерил на клиенте, а там этот вопрос решается легко. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:35 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
kdvвставка в такой ПК раза в три медленнее (в ФБ, тест Таблоида и Ковязина). Именно сама вставка или генерация uuid по сравнению с последовательностью? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:37 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, вставка в таблицу с ПК bigint/uuid. Проблема известная, и есть во всех СУБД с b-tree индексами. Кроме того, ключ обычного guid-uuid плохо упаковывается, и индекс сам по себе получается еще и в 4 раза больше, чем в случае последовательных (упакованных) значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:55 |
|
GUID в качестве primary key
|
|||
---|---|---|---|
#18+
kdvпоправка - gen_uuid еще в 2.1 появился. однако, вопрос с "непоследовательностью" gen_uuid все равно остается. В MS SQL есть newsequentialid " Можно воспользоваться для формирования идентификаторов GUID функцией NEWSEQUENTIALID, что позволяет уменьшить конфликты страниц на конечном уровне индексов. " Иначе вставка в такой ПК раза в три медленнее (в ФБ, тест Таблоида и Ковязина). писать feature request в трекер? Однозначно писать ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 16:25 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1562582]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 139ms |
0 / 0 |