Isolution666
@Isolution666
Full-Stack Developer

Как работать с очень большими данными в MySQL?

Здравствуйте, уважаемые программисты.
--
Предыстория: Прилетело мне как-то, помочь одному заказчику с таблицей в csv. Особенно, мне было жаль того бедолагу, который составлял эту самую таблицу.
Возможно никого не удивлю, может кого ошарашу, но таблица за 6 лет программирования в сфере web, мне показалась через чур большой для MySQL.

842fd4daca444cf1bf75ac0a46512844.png

Решил сделать скриншот, чтобы не было разговоров, что я выдумал, или это невозможно, так я узнал, что лимит столбцов в MySQL = 1500 ст. оказывается против 137 ст. ещё вроде не "много", но мне хватило. Сказать, что я был в шоке и в неадеквате, - ничего не сказать. Естественно, я по старинке преобразовал excel таблицу в csv, но сюрприз поджидал меня ещё до того, как я перешёл в PhpMyAdmin )) - таблица была в кодировке windows 1251 !!!
Естественно это было похоже больше на послание от инопланетян, чем на таблицу с товаром.
Преобразовал в utf-8, появились понятные русские буквы. Дальше столкнулся с лимитом в 300 сек.
Откуда я знал, что там 76 тысяч строк!!! Может для кого-то это не так страшно, но таблица весила почти 50 Mb. Коллеги по цеху успокоили меня, мол, ты ещё не работал с БД в 40 Tr !!!

Оптимисты блин.

Ну ок думаю, раз лимит в 300 сек, пошуршал в закладки OpenServer и открыл программку "MySQL менеджер", лёгенькая такая, не раз выручала. Однако, чтобы залить csv, надо было, чтобы в БД была таблица, куда заливать, а её нет, через PhpMyAdmin когда заливал эксельки для OpenCart CMS, там сразу без создания таблицы создавалась новая таблица, оставалось лишь настроить имена столбцов и их свойства. Замечательно, пришлось вручную делать таблицу, 137 столбцов, менеджер их почему-то делать не хотел, ошибки сыпал, разбираться некогда было. Только тогда залил 76 тысяч строк информации. Что я, больной что ли, заполнять столько в ручную? )))
В итоге я провозился с этой таблицей пол часа. Не ругайте сильно, я впервые столкнулся с таким объёмом, однако одолел его в виду своего опыта. Для человека нет ничего невозможного, особенно для упрямого.

ВОПРОС: Есть ли какое-нибудь адекватное решение таких задач, посоветуйте программы, Могу ли я созданную таблицу залить на сервер (боевой, не локальный), с помощью "MySQL менеджера", или придётся врубать консоль PuTTy ?
Где я могу научится делать миграции для Yii2 ?
  • Вопрос задан
  • 1035 просмотров
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
Актуальные версии PhpMyAdmin легко обходят лимит в 300 секунд, разбивая вставку данных на части. Если же у вас файл не успевает выгрузиться за 300 секунд, то можно попробовать запаковать его в gz например. Ну и данные не "очень большие", а очень даже маленькие (количество столбцов имхо не совсем адекватно, но это ничего особо не меняет).
Ответ написан
Комментировать
Isolution666
@Isolution666 Автор вопроса
Full-Stack Developer
HeidiSQL - подходит для работы с большими, по крайней мере для PhpMyAdmin таблицами.
Ещё MariaDB.
Хэйди уже опробовал, быстрая программа, правки, SQL-запросы выполняет быстро, не тормозит, понятный интерфейс, есть соединение с реальным сервером даже по защищённому соединению.

Марию ещё не пробовал, но частенько слышал о ней от тех кто работал с большим объёмом информации.

Хэйди открывает таблицы на много быстрее браузерного PhpMyAdmin.
К плюсам можно отнести и то, что:
Не надо вводить логин и пароль каждые 1440 секунд.
Операции выполняются мгновенно, внизу программы видно все запросы, которые были выполнены.
Легче копировать необходимые элементы.
Подключение к нескольким серверам в одном окне.
Подключиться через туннель SSH или выполнить настройки SSL.
Управление пользовательскими привилегиями
Импорт текстовых файлов
Экспорт строк таблицы в виде CSV, HTML, XML, SQL, LaTeX, Wiki Markup и PHP Array
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы