MySQL Duplicate запись '16777216' для ключа 1 Ошибка - PullRequest
0 голосов
/ 05 декабря 2010

У меня есть база данных MySQL, которая заполняется через приложение C #, массовая загрузка записей в масштабе более 100 миллионов записей. После того, как эти записи импортированы, для данных используются дальнейший анализ и другие инструменты оценки. Когда я выбираю меньшее подмножество данных, записи попадают в порядке, однако, когда я использую полный набор данных, когда достигается запись # 16777216, возникает эта ошибка. До того, как у меня были уникальные первичные настройки, тут и там создавались дублированные записи идентификаторов, но все данные поступали. Однако при наличии дублированных записей дальнейшая обработка давала неверные результаты.

Мой вопрос прост: кто-нибудь слышал об этой проблеме раньше, и если да, что происходит? Это ошибка в моей версии MySQL? Я использую MySQL 5.0.67 в Windows XP.

Большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 05 декабря 2010

просто любопытно ...

Есть ли какая-то конкретная причина, по которой вы не используете загрузку данных для заполнения ваших таблиц?

если вам нужно обработать данные в вашем приложении перед загрузкой, вы все равно можете это сделать, но вывести их в csv-файл вместо того, чтобы вызывать sproc 100 миллионов раз. загрузка данных инфиля будет намного быстрее !!

см. Здесь - http://dev.mysql.com/doc/refman/5.1/en/load-data.html

действительно ли вам нужен bigint беззнаковый первичный ключ (8 байт) против целого числа без знака (4 байт) с максимальным значением 4294967295 (4 млрд)

см. Здесь - http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

просто мысли ...

0 голосов
/ 05 декабря 2010

Вы уверены, что где-то не участвует MEDIUMINT? Запустите show create table в таблице, где показана эта проблема.

...