Работа с огромной базой более 100 млн. строк 2.X

Обсуждаются возможности шардинга и масштабирования базы данных для повышения производительности проекта

 
Посетитель
small user social cms
Сообщений: 76
Кто знает, есть ли возможность по связыванию 2-х разных б.д. на разных серверах по средствам join, или каких либо других средств. Необходимо работать с таблицами более 100 000 000 строк и связать их для отбора по параметрам. Тут необходимо горизонтальное масштабирование, но тогда теряются связи((( у кого есть идеи?
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Сообщений: 76
Нет идей? ))) Всё так плохо? )))
Разработка проектов любой сложности. Невозможное возможно!
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2752
mr.KEVASC,
Идей сколько угодно. Нет понимания задачи.
Вы в курсе, что одновременный запрос в две базы данных возможен только в случае, если обе базы на одном сервере и у них один пользователь?
Поэтому "связывать" базы возможно только при помощи php. И это будет очень небыстро.
Посетитель
small user social cms
Сообщений: 76
Ris:

mr.KEVASC,
Идей сколько угодно. Нет понимания задачи.
Вы в курсе, что одновременный запрос в две базы данных возможен только в случае, если обе базы на одном сервере и у них один пользователь?
Поэтому "связывать" базы возможно только при помощи php. И это будет очень небыстро.

Почему это на одном сервере? Что за глупости? ))) Это где такое нашли? ) Почему нет понимания задачи, надо join' ить несколько таблиц для сборки с разных серверов, или разбивать и обрабатывать по отдельности, может через node.js можно? может кто пробовал
Редактировалось: 1 раз (Последний: 24 июля 2019 в 00:07)
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Сообщений: 76
Рассматривал на mysql federated, но не понятно, может ли он join пропустить, может кто пробовал?
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2752
mr.KEVASC:
Что за глупости? ))) Это где такое нашли? )
Напишите умность.
Например код php, который сделает селект из двух баз на разных серверах.
Посетитель
small user social cms
Сообщений: 76
Ris:

mr.KEVASC:
Что за глупости? ))) Это где такое нашли? )
Напишите умность.
Например код php, который сделает селект из двух баз на разных серверах.

Вроде зайти на оф сайт и почитать не проблема. Может что-то не понимаю.

Код PHP:
  1. CREATE TABLE federated_table (
  2. id INT(20) NOT NULL AUTO_INCREMENT,
  3. name VARCHAR(32) NOT NULL DEFAULT '',
  4. other INT(20) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (id),
  6. INDEX name (name),
  7. INDEX other_key (other)
  8. )
  9. ENGINE=FEDERATED
  10. DEFAULT CHARSET=utf8mb4
  11. CONNECTION='mysql://[email protected]_host:9306/federated/test_table';
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Сообщений: 76
Вопрос в том, если кто работал с таким, то работает ли на таком выборка, точно знаю что select и update работает норм, но остальное как? и какова эффективность таких завязок?
Редактировалось: 1 раз (Последний: 24 июля 2019 в 00:38)
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Сообщений: 76
Ris:

P.S. Тут идет создание таблицы с завязкой на другом сервере. В том примере, что выше.
Редактировалось: 2 раз (Последний: 24 июля 2019 в 00:40)
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2752
mr.KEVASC,
Ответ MySQL: Документация

#1286 - Unknown storage engine 'FEDERATED'
----------------------------------------------------------------
Хотя... добавил federated в my.ini - работает.
Подцепился к удаленной базе. Селект работает нормально.
----------------------------------------------------------------
Инсерт тоже нормально работает. Добавил юзера в cms_users на локальном сервере и вошел под этим юзером на удаленном сайте.
И апдейт тоже нормально работает. Менял новому юзеру группы и никнейм.

mr.KEVASC:
работает ли на таком выборка, точно знаю что select и update работает норм
Чем отличается выборка от селекта?
Редактировалось: 2 раз (Последний: 24 июля 2019 в 02:08)
Посетитель
small user social cms
Сообщений: 76
Ris:

mr.KEVASC,
Ответ MySQL: Документация

#1286 - Unknown storage engine 'FEDERATED'
----------------------------------------------------------------
Хотя... добавил federated в my.ini - работает.
Подцепился к удаленной базе. Селект работает нормально.

mr.KEVASC:
работает ли на таком выборка, точно знаю что select и update работает норм
Чем отличается выборка от селекта?

Выборка по факту это связывание разных таблиц и получение конечного результата за один запрос.
Необходимо сделать join по таблице которая стоит в основной и удаленной базе. Необходимо понимание скоростей перебора больших массивов. И обработка в данном случае идет в основной баде и используются ресурсы основного сервера, или идет переброс на второй сервак.
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Сообщений: 76
Искал различную информацию по крупным проектам, и там толком ничего нет. По факту все размазано и ничего точного. Понятно, что ничего не понятно)))) Даже те кто занимается серверами шепчут неуверенно, сервер надо помощнее...))) толком сами не знаю что предложить) отправил запрос в отдел продаж, интересно что они смогут предложить)
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2752
mr.KEVASC:
Необходимо сделать join по таблице которая стоит в основной и удаленной базе.
Таблица, которая подключена к другой таблице - это практически одна таблица, только разнесенная по разным серверам. Джойнить её саму к себе не нужно. Можно точно так же подключить все таблицы в базе, тогда можно будет джойнить что угодно к чему угодно.
mr.KEVASC:
Необходимо понимание скоростей перебора больших массивов.
Тут на родном-то сервере выборка из миллиона строк периодически захлебывается на лимит оффсете, а Вы хотите по сетке таскать сто миллионов...

Завтра поэкспериментирую. Сделаю полностью сайт, где все таблицы будут подключены к удаленному тестовому серверу. Посмотрю, как выборка миллиона комментариев будет выглядеть...
-----------------------------------------------------------------
Простой SELECT * FROM `comments` занял 31 секунду.
Отображение строк 0 - 49 (1075562 всего, Запрос занял 31,0000 сек.)
Какая к чертям скорость?
Редактировалось: 1 раз (Последний: 24 июля 2019 в 02:27)
Посетитель
small user social cms
Сообщений: 76
Ris:

mr.KEVASC:
Необходимо сделать join по таблице которая стоит в основной и удаленной базе.
Таблица, которая подключена к другой таблице - это практически одна таблица, только разнесенная по разным серверам. Джойнить её саму к себе не нужно. Можно точно так же подключить все таблицы в базе, тогда можно будет джойнить что угодно к чему угодно.
mr.KEVASC:
Необходимо понимание скоростей перебора больших массивов.
Тут на родном-то сервере выборка из миллиона строк периодически захлебывается на лимит оффсете, а Вы хотите по сетке таскать сто миллионов...

Завтра поэкспериментирую. Сделаю полностью сайт, где все таблицы будут подключены к удаленному тестовому серверу. Посмотрю, как выборка миллиона комментариев будет выглядеть...
-----------------------------------------------------------------
Простой SELECT * FROM `comments` занял 31 секунду.
Отображение строк 0 - 49 (1075562 всего, Запрос занял 31,0000 сек.)
Какая к чертям скорость?

Это очень долго, у вас проблемы с настройками по базе походу, у меня выборка из 10м занимает не более 1с. и том что всё это ещё работает с join по 4 таблицам. И вполне может быть узким местом будет ещё жесткий диск, я такие проекты только на SSD рассматриваю, чтобы ж.д. небыл камнем преткновения.
Разработка проектов любой сложности. Невозможное возможно!
Посетитель
small user social cms
Медаль
Сообщений: 577
mr.KEVASC:
Почему это на одном сервере? Что за глупости? ))) Это где такое нашли? ) Почему нет понимания задачи, надо join' ить несколько таблиц для сборки с разных серверов, или разбивать и обрабатывать по отдельности, может через node.js можно? может кто пробовал

единственное, пока, вижу решение -
писать апи интерфейсы для каждой из баз
а потом с ними работать
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: