MySQL Optimization 20 гигов - PullRequest
6 голосов
/ 11 мая 2010

У меня есть таблица на 20 гигабайт, которая ежедневно содержит большое количество вставок и обновлений. Эта таблица также часто ищется. Я хотел бы знать, могут ли индексы MySQL стать фрагментированными и, возможно, должны быть перестроены или что-то подобное.

Мне трудно понять, какой из ПРОВЕРЕННЫХ СТОЛОВ, РЕМОНТНЫХ СТОЛОВ или чего-то подобного?

Любое руководство приветствуется, я новичок в ДБ.

1 Ответ

1 голос
/ 11 мая 2010

В зависимости от версии MySQL, которую вы используете, вы можете рассмотреть возможность создания разделов таблицы. Есть несколько способов, которыми вы можете использовать его, либо путем хеширования по идентификатору, либо по дате.

Существуют также способы логически отделить «рабочие» данные от архивных данных. Рассмотрим большую таблицу, которая представляет канал. Может случиться так, что данные менее 14 или 28 дней составляют 95% используемых вами данных, а остальные обычно могут быть помещены в архивную таблицу.

Если возможно разделение на несколько серверов, представляющих куски данных, есть несколько отличных презентаций о том, как создавать федеративные системы хранения данных с использованием MySQL. Обзор LiveJournal Брэда Фитпатрика - отличное место для старта.

В зависимости от типа данных, которые вы храните, вам может даже не понадобиться MySQL вообще. Если большинство ваших поисков являются первичными ключами, вы можете изучить системы хранения ключей / значений, такие как Redis или Cassandra, чтобы выяснить, соответствуют ли они вашим потребностям.

...