SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.06.2015 00:43:21

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Параллельные запросы к mysql

Приветствую всех!
Дали задание по MySQL, распараллеливание запросов.
Сколько ни гуглил, ничего конкретного по этой теме не нашел. Были только теории и описания того, что такое параллельный запрос. Поэтому прошу вас помочь с объяснением того какие бывают параллельные запросы, как их использовать и прочее.
Задача в том, что на примере бд нужно показать сперва какие-нибудь тяжелые запросы которые выполняются около 5 секунд, а потом те же запросы с распараллеливанием которые дадут чудесный результат 4,5 секунд и т.д. Кто что знает, подскажите.

Неактивен

 

#2 04.06.2015 00:45:25

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Параллельные запросы к mysql

Иногда можно разбить запрос на два и получить выигрыш. Что имеется в виду под параллельными запросами - шардинг?

Неактивен

 

#3 04.06.2015 01:14:29

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

Этого точно не могу сказать) по-поводу разбиения запроса на два и прочее я приводил как пример, также нужно привести в пример запрос+ распараллеливание. Возможно я что-то не допонял в задании. В пример сделал обычную бд с 3 таблицами, в одной из них около 1000 записей, привязал ключами. Делал тяжелые запросы по всем трем таблицам и подзапросы, скринил результаты времени 3-5 сек на запрос в следующем этапе мне нужно распараллелить эти запросы чтобы время на их обработку было меньше... Может задача состоит в том что бы подключить несколько клиентов к бд и отправить с каждого по запросу и потом как то это распараллелить?

Неактивен

 

#4 04.06.2015 12:39:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

MySQL не умеет распараллеливать выполнение одного запроса на нескольких процессорах, если речь идет об этом.

Вы можете взять статистику запросов за один час из query log и показать, что суммарное время выполнения этих запросов составляет много больше часа, так эти запросы выполнялись параллельно. Параллельно в данном случае выполняются запросы от разных клиентов.

Неактивен

 

#5 04.06.2015 13:40:51

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

т.е. если у нас есть тяжелый запрос, который выполняется очень долго, все что мы можем сделать- это разбить его на несколько простых для уменьшения времени? А как можно реализовать одновременные запросы с нескольких клиентов и попытаться распараллелить их?

Неактивен

 

#6 04.06.2015 13:43:24

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

и подскажите пожалуйста где можно прочитать про потоки в mysql, где нужно указать их количество?

Неактивен

 

#7 04.06.2015 14:00:03

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

lobasta написал:

т.е. если у нас есть тяжелый запрос, который выполняется очень долго, все что мы можем сделать- это разбить его на несколько простых для уменьшения времени?

Тяжелый запрос нужно оптимизировать. Разбиение запроса на несколько это один из способов оптимизации, который в некоторых случаях может быть эффективным. К распараллеливанию это не имеет отношения.

lobasta написал:

А как можно реализовать одновременные запросы с нескольких клиентов и попытаться распараллелить их?

Запросы разных клиентов по умолчанию выполняются одновременно, т.е. параллельно.
thread_concurrency кол-во одновременно работающих соединений.

Неактивен

 

#8 04.06.2015 14:14:52

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

т.е. ответом на мою задачу будет пример несколькими клиентами?

Неактивен

 

#9 04.06.2015 14:28:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

да

Неактивен

 

#10 04.06.2015 17:09:59

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

а как это можно реализовать? у меня установлена только mysql, для этого еще нужно ставить php my admin? или можно это реализовать на самом mysql?

Неактивен

 

#11 04.06.2015 18:04:29

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

mysqlslap входит в дистрибутив MySQL.

Неактивен

 

#12 04.06.2015 19:00:32

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

а можете объяснить как правильно запустить mysqlslap. в статьях приводят пример с созданием таблицы. как запустить проверку к уже готовой бд? и еще. при запуске выдает ошибку: Error when connetcting to server: Acces denied for user 'root' @ 'localhost' (using password: NO)

Неактивен

 

#13 04.06.2015 19:23:16

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

lobasta написал:

а можете объяснить как правильно запустить mysqlslap. в статьях приводят пример с созданием таблицы. как запустить проверку к уже готовой бд? и еще. при запуске выдает ошибку: Error when connetcting to server: Acces denied for user 'root' @ 'localhost' (using password: NO)

Фух. вроде разобрался

Неактивен

 

#14 04.06.2015 19:30:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\aa>cd "c:\Program Files\MariaDB 5.3\bin"

C:\Program Files\MariaDB 5.3\bin>mysqlslap --user=root --port=3308 --password --
create-schema=test --query="select * from city" --concurrency=5 --iterations=15
Enter password: ****
Benchmark
        Average number of seconds to run all queries: 0.236 seconds
        Minimum number of seconds to run all queries: 0.062 seconds
        Maximum number of seconds to run all queries: 1.657 seconds
        Number of clients running queries: 5
        Average number of queries per client: 1

Неактивен

 

#15 04.06.2015 19:39:54

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

Спасибо!

Неактивен

 

#16 04.06.2015 19:43:03

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

Теперь такой момент. через mysqlslap можно как-нибудь назначить количество потоков, для демонстрации параллельного и последовательного выполнения запросов?

Неактивен

 

#17 04.06.2015 19:50:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

Неактивен

 

#18 04.06.2015 20:04:23

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

т.е. в нашем случае количество клиентов= количество потоков?

Неактивен

 

#19 04.06.2015 20:10:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Параллельные запросы к mysql

да

Неактивен

 

#20 04.06.2015 20:18:23

lobasta
Участник
Зарегистрирован: 04.06.2015
Сообщений: 12

Re: Параллельные запросы к mysql

Огромное спасибо что помогли разобраться! Премного благодарен!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson