MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015
Re: MySQL запросы обрабатываются долго -
Stepashka - 06.01.2015
Логи времени выполнения запросов есть, или это беспочвенные обвинения и проблема окажется в вашем коде?
Re: MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015

Это норма?
Re: MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015
Quote:
Originally Posted by Stepashka
Логи времени выполнения запросов есть, или это беспочвенные обвинения и проблема окажется в вашем коде?
|
например, в таком случае, текст "Запрос обработан" я получаю только через 5-10 секунд после отправки запроса:
PHP код:
mysql_function_query(cH, "SELECT * FROM `accounts` WHERE `name` = 'PlayerName' LIMIT 1", true, "Test", "d", playerid);
PHP код:
forward Test(playerid);
public Test(playerid)
{
SendClientMessage(playerid, -1, "Запрос обработан");
return true;
}
сервер не лагает. хостинг: ру-хостер
попробовал такой же запрос отправить на mysql сервер с другого самп сервера, запрос обработался мгновенно.
Re: MySQL запросы обрабатываются долго -
stabker - 06.01.2015
Насколько я помню, логирование, которое в плагине, замедляет запросы (если логируется вообще все, а не только ошибки/предупреждения). Он у вас включен? Если да, то что именно логируется?
Re: MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015
Ошибки, предупреждения
Re: MySQL запросы обрабатываются долго -
Stepashka - 06.01.2015
Quote:
Originally Posted by CamperGTA

Это норма?
|
Это вообще ни как не связано с тем что я спросил.
Quote:
Originally Posted by CamperGTA
например, в таком случае, текст "Запрос обработан" я получаю только через 5-10 секунд после отправки запроса:
PHP код:
mysql_function_query(cH, "SELECT * FROM `accounts` WHERE `name` = 'PlayerName' LIMIT 1", true, "Test", "d", playerid);
PHP код:
forward Test(playerid);
public Test(playerid)
{
SendClientMessage(playerid, -1, "Запрос обработан");
return true;
}
сервер не лагает. хостинг: ру-хостер
попробовал такой же запрос отправить на mysql сервер с другого самп сервера, запрос обработался мгновенно.
|
Время выполнения запроса и время вызова колбека это не одно и то же, в плагине есть ещё очередь запросов, которая может замедлять вызов.
Индексы в таблицах есть?
Re: MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015
индексов нет
Re: MySQL запросы обрабатываются долго -
Daea - 06.01.2015
Ну вот и ответ)
Как думаешь, зачем нужно индексировать данные, когда их много? Нужно делать индексы, будет быстрее, ибо у тебя много данных в БД
Re: MySQL запросы обрабатываются долго -
CamperGTA - 06.01.2015
Quote:
Originally Posted by Daea
Ну вот и ответ)
Как думаешь, зачем нужно индексировать данные, когда их много? Нужно делать индексы, будет быстрее, ибо у тебя много данных в БД
|
С индексами еще не доразобрался, можете помочь?
Как сделать индексы для таблицы аккаунтов? большинство запросов делаю через никнейм (WHERE `name`)
Re: MySQL запросы обрабатываются долго -
Daea - 07.01.2015
А будет вот так:
Код:
UPDATE `accountz` SET `pAdmin` = '0' WHERE `ID` = '%d'
Где ID - индекс PRIMARY в БД, тем самым данное число уникальное. Дважды сделать ID, например, 2 - не получится
Re: MySQL запросы обрабатываются долго -
CamperGTA - 07.01.2015
Quote:
Originally Posted by Daea
А будет вот так:
Код:
UPDATE `accountz` SET `pAdmin` = '0' WHERE `ID` = '%d'
Где ID - индекс PRIMARY в БД, тем самым данное число уникальное. Дважды сделать ID, например, 2 - не получится
|
auto_increment чтоли?
Re: MySQL запросы обрабатываются долго -
Stepashka - 07.01.2015
Quote:
Originally Posted by CamperGTA
С индексами еще не доразобрался, можете помочь?
Как сделать индексы для таблицы аккаунтов? большинство запросов делаю через никнейм (WHERE `name`)
|
Установи уникальный индекс на поле `name`.
Re: MySQL запросы обрабатываются долго -
CamperGTA - 08.01.2015
Quote:
Originally Posted by Stepashka
Установи уникальный индекс на поле `name`.
|
Я правильно делаю?
PHP код:
ALTER TABLE `table` ADD INDEX ( `name` )
Re: MySQL запросы обрабатываются долго -
Stepashka - 08.01.2015
Quote:
Originally Posted by CamperGTA
Я правильно делаю?
PHP код:
ALTER TABLE `table` ADD INDEX ( `name` )
|
У вас что нет никакого клиентского приложения, типа phpmyadmina, для этого?
Re: MySQL запросы обрабатываются долго -
Stepashka - 08.01.2015
Нет, на кнопку
Уникальный.
Re: MySQL запросы обрабатываются долго -
CamperGTA - 08.01.2015
Quote:
Originally Posted by Stepashka
Нет, на кнопку Уникальный.
|
Сделать уникальным походу не получится.
Ошибка:
PHP код:
#1062 - Duplicate entry 'Bek_Alfonso' for key 'name_2'
т.к. я сделал систему аккаунтов чувствительным к регистру
эту проблему можно как-то решить?
Re: MySQL запросы обрабатываются долго -
Stepashka - 08.01.2015
Тебе нужно указать полю параметр BINARY, поле станет регистрозависимым, тогда станет возможным включить уникальный индекс.
Re: MySQL запросы обрабатываются долго -
CamperGTA - 08.01.2015
ошибся, изменил тип поля на BINARY (а надо было указать атрибут BINARY), потом обратно в VARCHAR, после этого например запрос
PHP код:
SELECT * FROM `accounts` WHERE BINARY `name` = 'PlayerName'
возвращает 0 строк, хотя запись с `name` = 'PlayerName' в таблице есть
что делать?
Re: MySQL запросы обрабатываются долго -
SoNikMells - 08.01.2015
Тип поля TEXT, кодировка utf8_general_ci, обращаюсь к полю учитывая регистр подобными запросами
PHP код:
SELECT * FROM `table` WHERE `name` LIKE BINARY '%e'
без регистра
PHP код:
SELECT * FROM `table` WHERE `name` LIKE '%e'
можно добавить LIMIT, чтоб после 1-ого найденного совпадения далее не искало
PHP код:
SELECT * FROM `table` WHERE `name` LIKE BINARY '%e' LIMIT 1