MySQL как работать с 10000+ строк?

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Реакции
14
Баллы
18
Здравствуйте уважаемое сообщество!

Начал писать новый проект и для соединения с БД поначалу использовал MySQL Connector для C#. Сначала вроде все было нормально, тестировал функции и они работали с БД. Но вот наткнулся на проблему, эта недобиблиотека то ли с кодировкой не работает какой-то то ли просто кривая, она не хочет INSERTить половину запросов и, что меня ооочень удивило и возмутило, и прям разорвало напополам - эта фиговина не может SELECTуть корректно то что мне нужно. Беру входящий SQL запрос и ввожу руками в БД (тупо копирую то что идет на вход в MySQL Connector) и все работает отлично, и INSERT и SELECT работают... Просто бред какойто. Пробовал в строку соединения с БД добавлять "charset=utf8;" и "cp1251" - никаких изменений.

Решил из-за этого попробовать перейти на встроенные в ЗенноПостер средства работы с MySQL и столкнулся с новой проблеммой. В Connector'е есть такая фишка как "connection.reader" и можно с помощью него считать построчно хоть 8 милионов записей с БД не забивая при этом память, грубо говоря это простой указатель на запись с возможностью просто переместить его на строчку дальше.

Подскажите пожалуйста как мне быть? Таблицы для перебора реально большие и это стадия тестирования (10-15к записей из которых по 2500-3500 попадают под SELECT и перебор), а будет в реальных условиях в 8-15 раз больше.

Благодарю за внимание! С уважением, Олег.
 
Или, возможно, вы знаете о MySQL Connector'е что-то чего я не знаю.

Можете также посетить эту тему в информативных целях - http://zennolab.com/discussion/threads/c-i-kodirovka-simvolov.45689/#post-339884

Я реально пользуюсь описанным в ней костылем, но это совсем не выход... Все строчки пропускать через костыль слишьком глупо (учитывая что данных немало).
 
Может ошибаюсь.
Но что мешает использовать Open Server c запущенным MySQL?
 
ну наверное подход неверный
зачем вам сразу 10к записей если не секрет?
ставьте в конце выбора limit 100 например и будет только 100 и стройте логику шаблона исходя из того что надо обработать 100 записей за раз...
 
  • Оценить
Реакции: Adamastor
Может ошибаюсь.
Но что мешает использовать Open Server c запущенным MySQL?
Да мне и Denwer'a хватает. Апач еще паралельно запускается и хоть я его и не использую пока он и ресурсов не жрет.

Или я Вас не правильно понял и у Open Server'a есть своя библиотека для управления MySQL средствами C#?
 
ну наверное подход неверный
зачем вам сразу 10к записей если не секрет?
ставьте в конце выбора limit 100 например и будет только 100 и стройте логику шаблона исходя из того что надо обработать 100 записей за раз...
Вариант конечно.

Интересно насколько он хуже варианта с указателем (reader).
 
стоит на локалке денвер, база на 75+ млн строк, делаю выборки как раз лимиту равным 100, много перепробовал лимитов, 100 самый оптимальный и по скорости и по обработке...
10к строк за раз взять думаю не получится, а тем более обработать их, да и плюс возможно они с разными символами, что еще затрудняет обработку.
 
  • Оценить
Реакции: TIIGR, Gulid и Adamastor
Благодарю за советы!

Однозначно буду переделывать. Мне этот MySQL Connector совсем не нравиться. При чем в запросах к БД преимущественно (90+%) латинские символы и цифры, и знаки проскакивают (точка/тире). Мне кажется они и в ЮТФ-8 и в CP1251 должны одинаково кодироваться (сомнения по поводу какраз точки/тире), поэтому не могу понять почему через него не работает половина запросов. Да и возможности указать кодировку нету (а то такое впечатление что ЗенноПостер на ЮТФ-8 работает, а эта библиотека предназначена для Виндовса и воспринимает только cp1251 на вход).

Гугл не помог короче говоря.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)