Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изменение индекса при выполнении оператора UPDATE / 5 сообщений из 5, страница 1 из 1
31.01.2004, 11:46
    #32394380
M2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение индекса при выполнении оператора UPDATE
Следующая задача:
Требуется использовать циклическую таблицу в БД реального времени.
Структура таблицы:

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?

Просьба ответить.
...
Рейтинг: 0 / 0
02.02.2004, 15:21
    #32395527
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение индекса при выполнении оператора UPDATE
"Крепкий" вопросец. Я думаю, тут только тесты помогут...
Единственное что я не пойму, из-за чего должен начать расти индексный файл, сли индекс идет по полю I а оно никогда не меняется, и кол-во записей в таблице всегда строгое. Или мы говорим про индекс по полю D ?

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
04.02.2004, 05:34
    #32397345
M2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение индекса при выполнении оператора UPDATE
Спасибо за ответ.

Да как раз я имею в виду поле D.
Скорее всего, только тестом можно будет узнать.
На поле D распространяется так называемая деградация данных, судя по книге MySQL.
...
Рейтинг: 0 / 0
04.02.2004, 10:01
    #32397468
skol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение индекса при выполнении оператора UPDATE
Тут скорее всего будет зависеть еще и от типа таблицы (ISAM/MyISAM).
А размер индекса если и превысит начальный размер (получившийся после инициализации), скорее всего устаканится на определенном уровне.

ЗЫ: Индекс по D я бы определил просто как INDEX, а не как UNIQUE иначе идет проверка при UPDATE, хотя если нагрузка позволяет, можно и оставить.

ЗЗЫ: До 2 гиг индекс точно не дорастет - ISAM таблица у тебя всего 200Мб будет

ЗЗЗЫ: :) А в чем глубокий смысл хранения циклического буфера в базе?
...
Рейтинг: 0 / 0
09.02.2004, 08:42
    #32402112
M2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение индекса при выполнении оператора UPDATE
Спасибо за ответ.

Система используется для промышленного архива.
Записывается приблизительно 500 каналов в секунду (500 таблиц).

Сейчас эксплуатируются не цикличные таблицы, это налагает большие издержки на обращение к жесткому диску.
Целью является повышение надежности хранения архива за счет снижения обращение к жесткому диску.
К тому же на операции удаления избыточных данных уходит большое количество ресурсов и времени (блокируются таблицы).
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изменение индекса при выполнении оператора UPDATE / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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