|
|
|
Логирование IBE$LOG_TABLES вопросы
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Необходимо логировать изменения данных в некоторых таблицах. Насколько знаю есть готовый вариант от IBE с log_tables. Разбираясь с ним появилось несколько вопросов: В таблице IBE$LOG_TABLES с столбцами (ID TABLE_NAME OPERATION DATE_TIME USER_NAME) нет данных по id записи которая логгируется. Такие данные есть в таблице IBE$LOG_KEYS(LOG_TABLES_ID KEY_FIELD KEY_VALUE) но KEY_VALUE хранится как VARCHAR(255) и на нем нет индекса (потому что нет смысла создавать индекс на столь длинное поле?). Также такие данные есть в IBE$LOG_FIELDS на там также хранится в VARCHAR. Поиск изменений по конкретной записи id таблицы получается достаточно трудоемкий и долгий (потому что пытаемся искать int в varchar) — или я ошибаюсь (данных в IBE$LOG_TABLES пусть будет несколько десятков миллионов)? Если добавить индексированное поле int RECORD_ID в IBE$LOG_TABLES то поиск изменений по RECORD_ID должен значительно ускориться даже с тем что все равно придется фильтровать по TABLE_NAME? Для этого придется править тригерры создаваемые с помощью IBE. В общем хотелось бы поинтересоваться работоспособностью и смыслом такого решения, альтернативы ему, может быть стоит создавать для каждой таблицы отдельную лог таблицу и тригеры вручную? Есть ли готовые рецепты правильного логгирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 00:38 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38648240&tid=1563581]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 397ms |

| 0 / 0 |
