powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL и Firebird для Web
12 сообщений из 287, страница 12 из 12
MySQL и Firebird для Web
    #36783643
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemana
Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий
сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии.

Так-то оно так, но беда в том, что и валидная запись может стать инвалидной к концу
транзакции. Т.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не
тянет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783652
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
artemana
Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий
сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии.

Так-то оно так, но беда в том, что и валидная запись может стать инвалидной к концу
транзакции. Т.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не
тянет.

Что ты имеешь виду?
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783684
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemanaЧто ты имеешь виду?

Берём, например, FK. Добавляем запись к существующему мастеру - операция валидна. Удаляем
мастера - операция инвалидна. Вставляем нового мастера с тем же PK - операция валидна.
Коммитим. Получаем облом на удаление мастера, поскольку деталь для него существует. А зря.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783705
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТ.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не тянет.Он уже есть и называется undo-log.
Проблема не в этом журнале. Проблема в том, чтобы сделать отложенную проверку максимально эффективной.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783732
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladОн уже есть и называется undo-log.
Разве он не уничтожается при достижении определённого размера?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783785
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
artemanaЧто ты имеешь виду?

Берём, например, FK. Добавляем запись к существующему мастеру - операция валидна. Удаляем
мастера - операция инвалидна. Вставляем нового мастера с тем же PK - операция валидна.
Коммитим. Получаем облом на удаление мастера, поскольку деталь для него существует. А зря.

В моем представлении, этот журнал это не просто последовательный лог событий. Это таблица невалидных записей-ограничений. Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и идентификатору ее таблице. При помещение валидной записи в базу данных не валидные нужно из журнала исключить, ес-но если она там есть. При помещение невалидной нужно добавить запись в журнал, если ее там нет. В конце транзакции проверить все записи журнала.

Тут самое главное что проигрыш в производительности при отсутствие нарушений или при малом их количестве совсем небольшой так журнал либо пуст либо содержит малое количество элементов, а значит поиск в нем не займет многого.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783822
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemana
Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и
идентификатору ее таблице.

В морг. Целые числа в качестве РК обычное явление, но отнюдь не требование. Плюс не надо
забывать unique constraints, check constraints и т.д. и т.п.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783854
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
hvladОн уже есть и называется undo-log.
Разве он не уничтожается при достижении определённого размера?
Не совсем так. Ну и для таблиц, участвующих в отложенной проверке можно не чистить лог.
Сдаётся мне, это тема не для этого форума :)
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783919
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
artemana
Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и
идентификатору ее таблице.

В морг. Целые числа в качестве РК обычное явление, но отнюдь не требование. Плюс не надо
забывать unique constraints, check constraints и т.д. и т.п.

Раз есть FK, значит есть PK, храни его в журнале. Причем здесь целые числа, из каких глубин своего подсознания ты их достал, ведь я о них не упоминал?

Причем здесь морг, я к тебе с просьбой о мед помощи о реализации вроде не обращался?
Dimitry Sibiryakov
Плюс не надо
забывать unique constraints, check constraints и т.д. и т.п.

Ну и ?
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36783970
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemana
artemanaЗапись в таком журнале идентифицируется по типу ограничения, PK-невалидной
записи и идентификатору ее таблице.
Раз есть FK, значит есть PK, храни его в журнале. Причем здесь целые числа, из каких
глубин своего подсознания ты их достал, ведь я о них не упоминал?

Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт.
Журнал при таких условиях в память может и не влезть.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36784028
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт.
Журнал при таких условиях в память может и не влезть.


А почему он (журнал) должен быть только в памяти??? Пусть, как и обычные таблицы, располагается на страницах БД, которые если журнал небольшой, за счет частого обращения, будут в кеше, или если он большой, будут вытесняться на диск. При большом количестве больших "инвалидов" падение производительности вполне допустимо. И кстати, оно не будет больше, чем при проверке уникальности PK или другого уникального ограничение на поле.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36812147
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo Исключение триггеров где они могли бы быть на своем месте тоже может нести риски увеличения энтропии программного обеспечения.
Точно так. В ряде случаев применение триггеров позволяет сократить программный код в разы.
Имхо, не стоит делать категоричный выбор между ХП и Триггерами. Истина где-то посередине. :)
Разумное сочетание обеих средств!
...
Рейтинг: 0 / 0
12 сообщений из 287, страница 12 из 12
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL и Firebird для Web
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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