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 раз больше.

Благодарю за внимание! С уважением, Олег.
 

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Или, возможно, вы знаете о MySQL Connector'е что-то чего я не знаю.

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

Я реально пользуюсь описанным в ней костылем, но это совсем не выход... Все строчки пропускать через костыль слишьком глупо (учитывая что данных немало).
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Может ошибаюсь.
Но что мешает использовать Open Server c запущенным MySQL?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 518
Благодарностей
990
Баллы
113
ну наверное подход неверный
зачем вам сразу 10к записей если не секрет?
ставьте в конце выбора limit 100 например и будет только 100 и стройте логику шаблона исходя из того что надо обработать 100 записей за раз...
 
  • Спасибо
Реакции: Adamastor

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Может ошибаюсь.
Но что мешает использовать Open Server c запущенным MySQL?
Да мне и Denwer'a хватает. Апач еще паралельно запускается и хоть я его и не использую пока он и ресурсов не жрет.

Или я Вас не правильно понял и у Open Server'a есть своя библиотека для управления MySQL средствами C#?
 

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
ну наверное подход неверный
зачем вам сразу 10к записей если не секрет?
ставьте в конце выбора limit 100 например и будет только 100 и стройте логику шаблона исходя из того что надо обработать 100 записей за раз...
Вариант конечно.

Интересно насколько он хуже варианта с указателем (reader).
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
стоит на локалке денвер, база на 75+ млн строк, делаю выборки как раз лимиту равным 100, много перепробовал лимитов, 100 самый оптимальный и по скорости и по обработке...
10к строк за раз взять думаю не получится, а тем более обработать их, да и плюс возможно они с разными символами, что еще затрудняет обработку.
 
  • Спасибо
Реакции: TIIGR, Gulid и Adamastor

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Благодарю за советы!

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

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

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