|
Изменение индекса при выполнении оператора UPDATE
|
|||
---|---|---|---|
#18+
Следующая задача: Требуется использовать циклическую таблицу в БД реального времени. Структура таблицы: CREATE TABLE T1( I int unsigned default NULL, D int64 default NULL, V float default NULL, F tinyint default NULL, PRIMARY KEY (I),UNIQUE (D)) Кол-во записей 10000000 (I=1,2..10000000). I D V F 1 11554565888 121.21 0 2 11554565889 121.56 0 3 11554565890 122.35 0 4 11554565891 133.77 1 . . 10000000 12554565888 110.55 0 Обновление данных осуществляется по индексному столбцу I, при том столбец I не изменяется (создаются данные только при инициализации таблицы данными). Выборка данных ведется по столбцу D. Суть вопроса в том, как будет изменяться размер индексного файла при выполнении запроса UPDATE типа: UPDATE SET D=11655695768, V=135.75, F=0 WHERE I=376548 UPDATE SET D=11655695769, V=134.22, F=0 WHERE I=376549 ВОПРОС: Какое поведение ждать от файла индекса? Циклическая запись выполняется с целью не блокирования файла таблицы на длительное время при таких операциях, как Delete. Каким образом можно использовать индекс, чтобы в принципе избежать изменения размера индексного файла при операциях UPDATE. Не будет ли индексный файл увеличиваться до 2 GB? Просьба ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2004, 11:46 |
|
Изменение индекса при выполнении оператора UPDATE
|
|||
---|---|---|---|
#18+
"Крепкий" вопросец. Я думаю, тут только тесты помогут... Единственное что я не пойму, из-за чего должен начать расти индексный файл, сли индекс идет по полю I а оно никогда не меняется, и кол-во записей в таблице всегда строгое. Или мы говорим про индекс по полю D ? . http://sql.ru/]mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2004, 15:21 |
|
Изменение индекса при выполнении оператора UPDATE
|
|||
---|---|---|---|
#18+
Спасибо за ответ. Да как раз я имею в виду поле D. Скорее всего, только тестом можно будет узнать. На поле D распространяется так называемая деградация данных, судя по книге MySQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2004, 05:34 |
|
Изменение индекса при выполнении оператора UPDATE
|
|||
---|---|---|---|
#18+
Тут скорее всего будет зависеть еще и от типа таблицы (ISAM/MyISAM). А размер индекса если и превысит начальный размер (получившийся после инициализации), скорее всего устаканится на определенном уровне. ЗЫ: Индекс по D я бы определил просто как INDEX, а не как UNIQUE иначе идет проверка при UPDATE, хотя если нагрузка позволяет, можно и оставить. ЗЗЫ: До 2 гиг индекс точно не дорастет - ISAM таблица у тебя всего 200Мб будет ЗЗЗЫ: :) А в чем глубокий смысл хранения циклического буфера в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2004, 10:01 |
|
Изменение индекса при выполнении оператора UPDATE
|
|||
---|---|---|---|
#18+
Спасибо за ответ. Система используется для промышленного архива. Записывается приблизительно 500 каналов в секунду (500 таблиц). Сейчас эксплуатируются не цикличные таблицы, это налагает большие издержки на обращение к жесткому диску. Целью является повышение надежности хранения архива за счет снижения обращение к жесткому диску. К тому же на операции удаления избыточных данных уходит большое количество ресурсов и времени (блокируются таблицы). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2004, 08:42 |
|
|
start [/forum/topic.php?fid=47&msg=32402112&tid=1855429]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 176ms |
0 / 0 |