powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DESC индекс для PK и FK
25 сообщений из 41, страница 1 из 2
DESC индекс для PK и FK
    #38936365
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие подводные камни могут быть, если все PK и FK в базе будут созданы с указанием использования DESC-индекса?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936366
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

нафига?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936368
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для быстрого select max(some_pk) ...
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936377
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

мне кажется, или за последнюю неделю наблюдается явный всплеск странных вопросов?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936381
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenДля быстрого select max(some_pk) ...

а это зачем?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936408
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kvd, погоди. Это пока еще нормальные вопросы :-)

Симонов Денис, самодельный репликатор, написанный за один день "на коленке", чтобы реплицировать данные между "филиалами" и центральной базой, использует такие запросы. На очень больших таблицах (порядка миллиарда записей) начинаются тормоза. А если учесть, что данные должны реплицироваться каждые 10(!) секунд, то вообще все грустно... Можно было бы написать его по-нормальному или задействовать готовый, но уже нету времени, т.к. внедрение системы должно вот-вот должно начаться. Поэтому ищу наиболее быстрые решения.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936417
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Artden!
You wrote on 14 апреля 2015 г. 19:27:36:

Artden> На очень больших таблицах (порядка миллиарда записей) начинаются
> тормоза. А если учесть, что данные должны реплицироваться каждые 10(!)
> секунд, то вообще все грустно...
в консерватории явные проблемы остойчивости цокольного этажа
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936420
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

для этого не надо во всех таблицах индекс DESC городить. В таблице логов сделал DESC индекс по этому филду где хранится код первичного ключа таблицы и всё.

P.S. Что-то мне подсказывает что репликация у тебя не очень правильно построена
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936441
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий, требования не я придумывал. Мое дело маленькое - сделать так, чтобы работало как нужно людям. Можно время между репликациями увеличить и до минуты, но пользователи центральной базы хотят видеть, что происходит в "филиалах" как можно быстрее

Симонов Денис, да так и есть. Репликация была сделана методом, который первый пришел в голову. Таблицы логов хранят только инфу об update и delete. Информация о новых записях получается путем сравнения максимальных значений ключевых полей. В общем-то все работает без сбоев, но проверка на большой сгенерированной базе показала тормоза.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936446
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что в итоге? Внутренности репликатора обсудили. А что насчет вопроса в первом сообщении темы?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936450
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenЭто пока еще нормальные вопросы :-)
нет, это уже ненормальные вопросы.
репликатор на select max() ? это пипец полный, а не репликатор.

Select max(id) для получения "последнего id" можно использовать только в одном известном мне случае:
когда база брякнулась, генераторы окривели, и в монопольном режиме надо восстановить значения генераторов по максимальным id-ам в таблицах.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936464
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, я тебе объяснил ситуацию. Я со всем согласен, но из-за недостатка времени меня интересуют очень быстрые решения. И самое простое решение в том, чтобы индексы по PK были убывающие (ну и соответственно по FK тоже, т.к. об этом предупреждается в документации). В этом случае max(pk) отрабатывает очень быстро.
Так вот, повторюсь: я не получу проблемы с такими индексам?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936466
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen я тебе объяснил ситуацию. Я со всем согласен, но из-за недостатка времени меня интересуют очень быстрые решения.

ситуация - это вот это?
"требования не я придумывал. Мое дело маленькое - сделать так, чтобы работало как нужно людям."

про "быстрые решения" и репликацию через select max(id) - очень круто.

ArtDenя не получу проблемы с такими индексам?
ты получишь проблемы с max(id) при многопользовательской работе. Отлаживал репликатор, небось, в монопольном режиме?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936472
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

фигнёй ты страдаешь. У самой таблицы логов есть ID. Эта таблица одна на всех? Всё что тебе надо так это "запомнить" в базе приёмнике ID последней отработанной записи из таблицы логов.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936474
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для многопользовательской среды там все учтено. Проблем с max(id) быть не может. В каждый момент может быть только одна транзакция репликатора в базе.
Так что там с убывающими индексами для pk и fk? Может мне хоть кто-нибудь ответить?
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936477
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenПроблем с max(id) быть не может.
Зря ты это думаешь. "Это я тебе, голуба, говорю как краевед." (с)

ArtDenТак что там с убывающими индексами для pk и fk? Может мне хоть кто-нибудь
ответить?
Видишь ли, до сих пор ни в одну дурную голову такая странная идея не приходила, так что ты
будешь подопытным кроликом. Вот попробуй и расскажешь остальным.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936483
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, да таблица одна на всех. И у нее есть id, максимальное значение которого сохраняется и используется репликатором. Но ней не хранятся данные о вставленных записях. Только об удаленных и измененных.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936490
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, я бы просто создал отдельный индекс, но для таблицы-миллиардника иметь два индекса по bigint-полю - это расточительство с точки зрения оптимальности импользования кэша :-)
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936518
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenСимонов Денис, да таблица одна на всех. И у нее есть id, максимальное значение которого сохраняется и используется репликатором. Но ней не хранятся данные о вставленных записях. Только об удаленных и измененных.
ну так сохраняй и о вставленных тоже. Это куда проще чем перелопачивать базу и менять направление индексов. Тем более как тебе уже сказали это будет работать не так как ты ожидаешь
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936521
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenКакие подводные камни могут бытьа что, возможны какие-то подводные камни? я как раз собираюсь в одной таблице "развернуть" PK. там, правда, всего 40 млн и запросы вида "order by PK desc"
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936522
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, ну во первых, работает это как я ожидаю. Это тебе не "эмуляция" генераторов через max(id)+1 :-)
А во вторых, у меня и так уже ожидаются две таблицы с заполнением более 500 млн. строк в год. Иметь еще одну гигантскую таблицу с логами мне не хочется. Хотя ее можно периодически подчищать, но сейчас из-за недостатка времени мне хочется иметь максимально простое решение.
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936529
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fd00ch, я тоже надеюсь, что их нет. Но ответы в этом форуме заставили призадуматься... :-)
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936530
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

тупо заведи себе таблицу в БД приёмнике и пиши в неё последней обработанный id по каждой таблице БД источника в пачке переданных данных.

create table t (
tablename char(31) not null,
source_db char(31) not null,
last_id bigint
)
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936531
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenработает это как я ожидаю. Это тебе не "эмуляция" генераторов через max(id)+1
:-)
Вообще-то разницы с генерацией в данном случае нет. А "работает" оно только потому, что ты
тестируешь в монопольном режиме.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DESC индекс для PK и FK
    #38936535
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, уже думал об этом. Это я сделаю в случае, если будут косяки или тормоза с убывающими индексами по pk.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DESC индекс для PK и FK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]