У меня есть база данных MySQL, заполняемая приложением С#, массовая загрузка записей в масштабе более 100 миллионов записей. После импорта этих записей в данные используются дополнительные аналитические и другие инструменты оценки. Когда я выбираю меньший поднабор данных, записи становятся все точнее, однако, когда я использую полный набор данных, как только запись # 16777216 достигнута, эта ошибка возникает. До того, как у меня были уникальные первичные настройки, дублирующие записи идентификаторов создавались здесь и там, но все данные поступали. Однако, если учесть дублированные записи, дальнейшая обработка приводила к неправильным результатам.
Мой вопрос прост, кто-нибудь слышал об этой проблеме раньше, и если да, то что происходит? Является ли это ошибкой в моей версии MySQL? Я запускаю MySQL 5.0.67 в Windows XP.
Спасибо большое!
просто любопытно...
какая-либо особая причина, по которой вы не используете infid данных загрузки для заполнения ваших таблиц?
если вам нужно обработать данные в своем приложении перед загрузкой, вы все равно можете это сделать, а вывести файл csv вместо вызова sproc 100 миллионов раз. load data infile будет намного быстрее!
см. здесь - 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
просто мысли...
Вы уверены, что в нем нет MEDIUMINT
? Запустите show create table
в таблице, которая показывает эту проблему.
metrics
CREATE TABLE ( classification
int (11) по умолчанию NULL, edit_distance
int (11) по умолчанию NULL, edit_goodness
float по умолчанию NULL, shorter_name_len
int (11) по умолчанию NULL, spatial_distance
float (30,2) по умолчанию NULL, spatial_precision_deg
float (30,5) по умолчанию NULL , spatial_goodness
float (30,5) по умолчанию NULL,