Здравствуйте, Smooky, Вы писали:
S>Здравствуйте, Anton Batenev, Вы писали:
AB>>Здравствуйте, Smooky, Вы писали:
S>>> Сделал тестовое приложение, на С++. Вставка в чистую БД 200 000 000 записей заняла 10 часов примерно. S>>> Вот такой запрос выполняется 28 минут: select count(*) from test_table where msisdn='84537683151';
AB>>Тип таблицы? msisdn — это текст или все же число и какой результат дал запрос выше (сколько там реально count)?
S>Тип MyISAM. msisdn — это текст, но поскольку в INT он может не влазить, то тип varchar(11). Результат 600 записей.
насколько разные первые N символов в msisdn? Если нет такого, что 99% записей начинаются с трех одинаковых цифр, то можно попробовать сделать индекс по первым N символам (чем больше N, тем больше размер индекса и пересчет его при инсерте). После создания индекса, попробуйте заново загнать весь датасет и засечь, сколько это займет. Будет однозначно больше, вопрос насколько. Основная часть запросо будет только с where msisdn='XXX'? Что говорит show create table `table` ?