Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 9 10 11 [12]      все
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55303

artemana

Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий
сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии.

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

Posted via ActualForum NNTP Server 1.4

10 авг 10, 11:36    [9238972]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

artemana

Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий
сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии.

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

Что ты имеешь виду?
10 авг 10, 11:44    [9239028]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55303

artemana
Что ты имеешь виду?

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

Posted via ActualForum NNTP Server 1.4

10 авг 10, 12:02    [9239218]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11642
Dimitry Sibiryakov
Т.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не тянет.
Он уже есть и называется undo-log.
Проблема не в этом журнале. Проблема в том, чтобы сделать отложенную проверку максимально эффективной.
10 авг 10, 12:08    [9239281]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55303

hvlad
Он уже есть и называется undo-log.

Разве он не уничтожается при достижении определённого размера?

Posted via ActualForum NNTP Server 1.4

10 авг 10, 12:15    [9239348]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

artemana
Что ты имеешь виду?

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

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

Тут самое главное что проигрыш в производительности при отсутствие нарушений или при малом их количестве совсем небольшой так журнал либо пуст либо содержит малое количество элементов, а значит поиск в нем не займет многого.
10 авг 10, 12:36    [9239537]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55303

artemana

Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и
идентификатору ее таблице.

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

Posted via ActualForum NNTP Server 1.4

10 авг 10, 12:52    [9239683]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11642
Dimitry Sibiryakov

hvlad
Он уже есть и называется undo-log.

Разве он не уничтожается при достижении определённого размера?
Не совсем так. Ну и для таблиц, участвующих в отложенной проверке можно не чистить лог.
Сдаётся мне, это тема не для этого форума :)
10 авг 10, 13:05    [9239795]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

artemana

Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и
идентификатору ее таблице.

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

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

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

Плюс не надо
забывать unique constraints, check constraints и т.д. и т.п.

Ну и ?
10 авг 10, 13:32    [9240068]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55303

artemana

artemana
Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной
записи и идентификатору ее таблице.

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

Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт.
Журнал при таких условиях в память может и не влезть.

Posted via ActualForum NNTP Server 1.4

10 авг 10, 13:51    [9240216]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт.
Журнал при таких условиях в память может и не влезть.


А почему он (журнал) должен быть только в памяти??? Пусть, как и обычные таблицы, располагается на страницах БД, которые если журнал небольшой, за счет частого обращения, будут в кеше, или если он большой, будут вытесняться на диск. При большом количестве больших "инвалидов" падение производительности вполне допустимо. И кстати, оно не будет больше, чем при проверке уникальности PK или другого уникального ограничение на поле.
10 авг 10, 14:07    [9240381]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Megabyte
Member

Откуда: ближайшее заМКАДье
Сообщений: 5029
vadiminfo
Исключение триггеров где они могли бы быть на своем месте тоже может нести риски увеличения энтропии программного обеспечения.

Точно так. В ряде случаев применение триггеров позволяет сократить программный код в разы.
Имхо, не стоит делать категоричный выбор между ХП и Триггерами. Истина где-то посередине. :)
Разумное сочетание обеих средств!
26 авг 10, 10:10    [9327483]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 9 10 11 [12]      все
Все форумы / Сравнение СУБД Ответить