PDA

Просмотр полной версии : [Вопрос] MySQL



Son of the Moon
23.08.2016, 01:36
Возник такой вопрос по MySQL.
В общем при регистрации заметил что когда создает в таблице аккаунт, сервер лагает, диалог появляется не сразу, а через некоторое время, можно ли как-то это исправить что-ль.



mysql_format(MySQL, string, sizeof(string), "INSERT INTO `"MYSQL_DIR_ACCOUNT"` (`Name`,`IP`,`Password`) VALUES ('%e', '%e', '%e')", Player[playerid][Name], Player[playerid][IP], inputtext);
mysql_tquery(MySQL, string, "", "");

Saibot
23.08.2016, 02:37
Попробуй сделать асинхронный запрос.


mysql_format(MySQL, string, sizeof(string),
"INSERT INTO `"MYSQL_DIR_ACCOUNT"` (`Name`, `IP`, `Password`) VALUES ('%e', '%e', '%e')",
Player[playerid][Name], Player[playerid][IP], inputtext);

mysql_function_query(MySQL, string, false, "", "");
Сервер не будет ждать пока завершится предыдущий запрос, а будет работать дальше.

Son of the Moon
23.08.2016, 02:48
Попробуй сделать асинхронный запрос.


mysql_format(MySQL, string, sizeof(string),
"INSERT INTO `"MYSQL_DIR_ACCOUNT"` (`Name`, `IP`, `Password`) VALUES ('%e', '%e', '%e')",
Player[playerid][Name], Player[playerid][IP], inputtext);

mysql_function_query(MySQL, string, false, "", "");
Сервер не будет ждать пока завершится предыдущий запрос, а будет работать дальше.

не помогло.

Profyan
23.08.2016, 07:44
Попробуй сделать асинхронный запрос.


mysql_format(MySQL, string, sizeof(string),
"INSERT INTO `"MYSQL_DIR_ACCOUNT"` (`Name`, `IP`, `Password`) VALUES ('%e', '%e', '%e')",
Player[playerid][Name], Player[playerid][IP], inputtext);

mysql_function_query(MySQL, string, false, "", "");
Сервер не будет ждать пока завершится предыдущий запрос, а будет работать дальше.

mysql_function_query как бы уже deprecated)
А mysql_tquery выполняется в отдельном от pawn потоке.
Если тебе не нужно кеширование, то можешь попробовать mysql_pquery(там вроде бы для каждого запроса свой поток выделяется)