|
|
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
artemana Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии. Так-то оно так, но беда в том, что и валидная запись может стать инвалидной к концу транзакции. Т.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не тянет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 11:36 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov artemana Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии. Так-то оно так, но беда в том, что и валидная запись может стать инвалидной к концу транзакции. Т.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не тянет. Что ты имеешь виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 11:44 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
artemanaЧто ты имеешь виду? Берём, например, FK. Добавляем запись к существующему мастеру - операция валидна. Удаляем мастера - операция инвалидна. Вставляем нового мастера с тем же PK - операция валидна. Коммитим. Получаем облом на удаление мастера, поскольку деталь для него существует. А зря. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 12:02 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТ.е. надо хранить журнал всех изменённых записей, а он уже на "небольшой" не тянет.Он уже есть и называется undo-log. Проблема не в этом журнале. Проблема в том, чтобы сделать отложенную проверку максимально эффективной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 12:08 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
hvladОн уже есть и называется undo-log. Разве он не уничтожается при достижении определённого размера? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 12:15 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov artemanaЧто ты имеешь виду? Берём, например, FK. Добавляем запись к существующему мастеру - операция валидна. Удаляем мастера - операция инвалидна. Вставляем нового мастера с тем же PK - операция валидна. Коммитим. Получаем облом на удаление мастера, поскольку деталь для него существует. А зря. В моем представлении, этот журнал это не просто последовательный лог событий. Это таблица невалидных записей-ограничений. Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и идентификатору ее таблице. При помещение валидной записи в базу данных не валидные нужно из журнала исключить, ес-но если она там есть. При помещение невалидной нужно добавить запись в журнал, если ее там нет. В конце транзакции проверить все записи журнала. Тут самое главное что проигрыш в производительности при отсутствие нарушений или при малом их количестве совсем небольшой так журнал либо пуст либо содержит малое количество элементов, а значит поиск в нем не займет многого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 12:36 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
artemana Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и идентификатору ее таблице. В морг. Целые числа в качестве РК обычное явление, но отнюдь не требование. Плюс не надо забывать unique constraints, check constraints и т.д. и т.п. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 12:52 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov hvladОн уже есть и называется undo-log. Разве он не уничтожается при достижении определённого размера? Не совсем так. Ну и для таблиц, участвующих в отложенной проверке можно не чистить лог. Сдаётся мне, это тема не для этого форума :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 13:05 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov artemana Запись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и идентификатору ее таблице. В морг. Целые числа в качестве РК обычное явление, но отнюдь не требование. Плюс не надо забывать unique constraints, check constraints и т.д. и т.п. Раз есть FK, значит есть PK, храни его в журнале. Причем здесь целые числа, из каких глубин своего подсознания ты их достал, ведь я о них не упоминал? Причем здесь морг, я к тебе с просьбой о мед помощи о реализации вроде не обращался? Dimitry Sibiryakov Плюс не надо забывать unique constraints, check constraints и т.д. и т.п. Ну и ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 13:32 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
artemana artemanaЗапись в таком журнале идентифицируется по типу ограничения, PK-невалидной записи и идентификатору ее таблице. Раз есть FK, значит есть PK, храни его в журнале. Причем здесь целые числа, из каких глубин своего подсознания ты их достал, ведь я о них не упоминал? Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт. Журнал при таких условиях в память может и не влезть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 13:51 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ты упомянул РК невалидной записи. Значение РК может достигать в размере четырёх килобайт. Журнал при таких условиях в память может и не влезть. А почему он (журнал) должен быть только в памяти??? Пусть, как и обычные таблицы, располагается на страницах БД, которые если журнал небольшой, за счет частого обращения, будут в кеше, или если он большой, будут вытесняться на диск. При большом количестве больших "инвалидов" падение производительности вполне допустимо. И кстати, оно не будет больше, чем при проверке уникальности PK или другого уникального ограничение на поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 14:07 |
|
||
|
MySQL и Firebird для Web
|
|||
|---|---|---|---|
|
#18+
vadiminfo Исключение триггеров где они могли бы быть на своем месте тоже может нести риски увеличения энтропии программного обеспечения. Точно так. В ряде случаев применение триггеров позволяет сократить программный код в разы. Имхо, не стоит делать категоричный выбор между ХП и Триггерами. Истина где-то посередине. :) Разумное сочетание обеих средств! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36783732&tid=1552773]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 378ms |

| 0 / 0 |
