Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Большая таблица, вставка и выборка (Евгений) 01/09/2005 - 08:14:20
      Re: Большая таблица, вставка и выборка (Валентин) 01/09/2005 - 14:05:30
      Re: Большая таблица, вставка и выборка (Dinky) 01/09/2005 - 19:19:28
      Re: Конкретизирую проблему (Евгений) 02/09/2005 - 09:07:52
      Re: Конкретизирую проблему (Dinky) 02/09/2005 - 19:47:26

> Original message text:
> From: Евгений - 01/09/2005 - 08:14:20
> Subject:Большая таблица, вставка и выборка
> -----------------
> Господа, существует таблица (7 полей, 4 индекса) объемом 128 млн. строк, 8 Гб.
> В последнее время комп(P4 3ГГц, RAM 512Mb) плохо справляется с вставкой строк. Возможно я где-то ошибся в проектировании. Поэтому прошу помощи у специалистов в разработке структуры таблиц, запросов на вставку и выборку.
> Т.З.: Необходимо хранить данные о звонках абонентов за год (датавремя, номер1, номер2, длительность, имеи, сота1, сота2). Примерное кол-во в месяц - 20млн.
> Данные добавляются каждый час примерно по 40тыс. записей.
> Выборка нужна по полям датавремя и (номер1 или номер2 или имеи). Размер выборки может достигать 5тыс. записей. Время выборки желательно до 5мин.
> Помогите кто чем может.
>


From: Dinky - 01/09/2005 - 19:19:28
Subject:Большая таблица, вставка и выборка
-----------------
два сервака (мастер-слэйв) надо если данные вливаются непрерывно и не хочется лочить таблицы репортами, если же пакетно раз в час - то необязательно имхо ;)
стандартная рекомендация - подобрать типы данных так чтобы сделать размер записи как можно меньше (фиксированной длины по возможности):
> датавремя, номер1, номер2, длительность, имеи, сота1, сота2
timestamp, char/int(?), char/int(?), tinyint unsigned, ?, ?, ?
Индксы надо строить по запросам, т.е. необходимо иметь _полный_ список запросов, чтоб сделать оптимальные индексы
/* чем больше всяких индексов, тем медленнее вставки ;) */
Если в выборках будет группировка/сортировка, то может стОит подумать о дополнительных таблицах, куда писать уже сгруппированную информацию, например:
table1: дата, номер1, sum(длительность)
tale2: дата, номер2, sum(длительность)
в таком духе :)
Еще вариант - писать вне в одну таблицу, а разбивать по-месячно - новый месяц, новая таблица. Запросы можно делать по-отдельности, а можно использовать merge table.
--
Dmitry


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
23844



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |