SA-MP Forums Archive
долгое сохранения аккаунта // sqilite - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: долгое сохранения аккаунта // sqilite (/showthread.php?tid=497612)

Pages: 1 2


долгое сохранения аккаунта // sqilite - Dragunovje - 27.02.2014

По мне сохранение аккаунта очень медленное,почему так?
PHP Code:
[01:45:05Аккаунт сохранен за 96 мс
[01:45:07Аккаунт сохранен за 88 мс
[01:45:08Аккаунт сохранен за 146 мс
[01:45:08Аккаунт сохранен за 97 мс
[01:45:09Аккаунт сохранен за 143 мс
[01:45:10Аккаунт сохранен за 111 мс
[01:45:10Аккаунт сохранен за 123 мс
[01:45:11Аккаунт сохранен за 120 мс
[01:45:12Аккаунт сохранен за 122 мс
[01:45:12Аккаунт сохранен за 108 мс
[01:45:13Аккаунт сохранен за 107 мс
[01:45:13Аккаунт сохранен за 81 мс
[01:45:14Аккаунт сохранен за 106 мс
[01:45:15Аккаунт сохранен за 99 мс
[01:45:15Аккаунт сохранен за 106 мс
[01:45:16Аккаунт сохранен за 85 мс
[01:45:17Аккаунт сохранен за 156 мс
[01:45:17Аккаунт сохранен за 81 мс
[01:45:18Аккаунт сохранен за 89 мс
[01:46:38Аккаунт сохранен за 167 мс
[01:46:39Аккаунт сохранен за 155 мс
[01:46:39Аккаунт сохранен за 174 мс
[01:46:40Аккаунт сохранен за 88 мс
[01:46:41Аккаунт сохранен за 87 мс
[01:46:41Аккаунт сохранен за 134 мс
[01:46:42Аккаунт сохранен за 126 мс
[01:46:42Аккаунт сохранен за 138 мс 
PHP Code:
save_user(userid){
    new 
str[600];
    new 
time GetTickCount();
    
format(str,500,"UPDATE USERS SET MONEY = '%d', KILLS = '%d', SKIN = '%d', ADMIN = '%d', LEVEL = '%d', EXP = '%d', MUTE = '%d', FRAKA = '%d', DRUGS = '%d' WHERE NAME = '%s'",pinfo[userid][pcash],pinfo[userid][pkill],pinfo[userid][pskin],pinfo[userid][padminlvl],pinfo[userid][plevel],pinfo[userid][pexp],pinfo[userid][pmute],pinfo[userid][pfraka],pinfo[userid][pdrugs],pinfo[userid][pname]);
    
db_query(users_basestr);
    
format(str144"Аккаунт сохранен за %d мс",GetTickCount() - time);
    
SendClientMessage(userid,-1,str);




Re: долгое сохранения аккаунта // sqilite - Gameyer - 27.02.2014

PHP Code:
new str[300];
format(str,sizeof(str),"UPDATE `USERS` SET `MONEY` = %d, `KILLS` = %d, `SKIN` = %d, `ADMIN` = %d, `LEVEL` = %d`, `EXP` = %d, `MUTE` = %d,`FRAKA` = %d, `DRUGS` = %d WHERE `NAME` = '%s'",pinfo[userid][pcash],pinfo[userid][pkill],pinfo[userid][pskin],pinfo[userid][padminlvl],pinfo[userid][plevel],pinfo[userid][pexp],pinfo[userid][pmute],pinfo[userid][pfraka],pinfo[userid][pdrugs],pinfo[userid][pname]);
    
db_query(users_basestr); 
Запрос корректный, помоему это стандартная скорость обновления samp sqlite.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 27.02.2014

будут-ли лаги при онлайне +100 +300 +600
на файлы возращаться не собираюсь,и на мускул переоходить тоже,хотелось бы оптимизировать чтоле.


Re: долгое сохранения аккаунта // sqilite - Jon_De - 27.02.2014

Quote:
Originally Posted by Dragunovje
View Post
будут-ли лаги при онлайне +100 +300 +600
на файлы возращаться не собираюсь,и на мускул переоходить тоже,хотелось бы оптимизировать чтоле.
будут
ставь ключи


Re: долгое сохранения аккаунта // sqilite - eakwarp - 27.02.2014

Quote:
Originally Posted by Dragunovje
View Post
будут-ли лаги при онлайне +100 +300 +600
на файлы возращаться не собираюсь,и на мускул переоходить тоже,хотелось бы оптимизировать чтоле.
Тогда не смейте этим более заниматься.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 27.02.2014

Quote:
Originally Posted by Jon_De
View Post
будут
ставь ключи
поясните?


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 27.02.2014

Quote:
Originally Posted by eakwarp
View Post
Тогда не смейте этим более заниматься.
я жду ответов по теме,а не "поцан гуляй" и т.п


Re: долгое сохранения аккаунта // sqilite - eakwarp - 28.02.2014

Quote:
Originally Posted by Dragunovje
View Post
я жду ответов по теме,а не "поцан гуляй" и т.п
Вам все ответы дали, в ваших целях использование sqlite не целесообразно. И вы сходу отвергаете все реально возможные варианты в ваших условиях, с такими замашками выйдите вон и не смейте больше этим заниматься не при каких обстоятельствах.


Re: долгое сохранения аккаунта // sqilite - OKStyle - 28.02.2014

Варп, полегче. Никто не должен заставлять кого-то использовать именно что-то конкретное. Хочет использовать sqlite - его дело. А философствовать по поводу "не стать программистом" не надо. Используешь MySQL - используй. А я вот не хочу =) И много кто использует то, что по каким-либо причинам является необходимым и достаточным для его задачи.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 28.02.2014

Quote:
Originally Posted by eakwarp
View Post
Вам все ответы дали, в ваших целях использование sqlite не целесообразно. И вы сходу отвергаете все реально возможные варианты в ваших условиях, с такими замашками выйдите вон и не смейте больше этим заниматься не при каких обстоятельствах.
если вам нечего сказать по поводу темы,то прошу просто пройти мимо,а не отвечать на очевидные вопросы.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 28.02.2014

Quote:
Originally Posted by OKStyle
View Post
Варп, полегче. Никто не должен заставлять кого-то использовать именно что-то конкретное. Хочет использовать sqlite - его дело. А философствовать по поводу "не стать программистом" не надо. Используешь MySQL - используй. А я вот не хочу =) И много кто использует то, что по каким-либо причинам является необходимым и достаточным для его задачи.
Спасибо за ответ.


Re: долгое сохранения аккаунта // sqilite - eakwarp - 28.02.2014

Quote:
Originally Posted by OKStyle
View Post
Варп, полегче. Никто не должен заставлять кого-то использовать именно что-то конкретное. Хочет использовать sqlite - его дело. А философствовать по поводу "не стать программистом" не надо. Используешь MySQL - используй. А я вот не хочу =) И много кто использует то, что по каким-либо причинам является необходимым и достаточным для его задачи.
Я вообще postgresql использую. Но здесь человек дал вполне явную проблему, указал рамки, у него уже с маленьким онлайном бд работает крайне медленно, а он хочет все это дело заставить работать при онлайне в 500 игроков. Бд загнется уже при создании пары тысяч аккаунтов, и будет работать в сотни раз медленнее, а он кричит что не будет использовать мускул.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 28.02.2014

Quote:
Originally Posted by eakwarp
View Post
Я вообще postgresql использую. Но здесь человек дал вполне явную проблему, указал рамки, у него уже с маленьким онлайном бд работает крайне медленно, а он хочет все это дело заставить работать при онлайне в 500 игроков. Бд загнется уже при создании пары тысяч аккаунтов, и будет работать в сотни раз медленнее, а он кричит что не будет использовать мускул.
онлайн у меня 1,тобишь только я,сейчас буду тестить на хостинге,может у меня машина слоу просто.


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 28.02.2014

Что если не при выходе сохранять,а при каждом изменении переменной сразу вписывать в таблицу,например скин изменил вписал,будет ли данный способ оптимальнее в данной ситуации?


Re: долгое сохранения аккаунта // sqilite - OKStyle - 28.02.2014

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


Re: долгое сохранения аккаунта // sqilite - Dragunovje - 28.02.2014

Спасибо за ответ,думаю будет целесообразнее сохранять сразу по одной переменной,чем при дисконекте сразу все.
Можно узнать есть-ли еще способы хранения данных кроме файлов и mysql/sqlite ?


Re: долгое сохранения аккаунта // sqilite - Eims - 28.02.2014

Quote:
Originally Posted by Dragunovje
View Post
Спасибо за ответ,думаю будет целесообразнее сохранять сразу по одной переменной,чем при дисконекте сразу все.
По моему, не стоит с этим перебарщивать. Например, при каждой передаче денег сохранять их как-то глупо, ибо представьте что будет твориться с запросами при онлайне, например, в 50 человек А если ещё и фраги какие-нибудь сохранять... В общем, частота запросов должна выйти бешенная.
В общем, как и говорили выше, думать над этим надо именно вам, а не нам. Ибо только вы знаете свой код и только вы можете представить какой кусок кода будет вызываться часто, а какой реже.

И не понимаю чем вас MySQL не устраивает? Он ничуть не сложнее SQLite и с его освоением у вас не должно быть никаких сложностей... Ну дело ваше


Re: долгое сохранения аккаунта // sqilite - OKStyle - 28.02.2014

Неустраивать MySQL может тем, что для него нужна эта база)) А не все хостеры её предоставляют (тем более бесплатно). А на sqlite файл валяется в директории сервера.
Насчет денег согласен, потому и написал: "и нужно ли вообще", ведь некоторые данные меняются много раз в минуту - нет смысла их сохранять.


Re: долгое сохранения аккаунта // sqilite - stabker - 28.02.2014

Quote:
Originally Posted by Dragunovje
View Post
Спасибо за ответ,думаю будет целесообразнее сохранять сразу по одной переменной,чем при дисконекте сразу все.
Можно узнать есть-ли еще способы хранения данных кроме файлов и mysql/sqlite ?
А вы уже проверяли, сколько времени занимает изменение 1 значения?


Re: долгое сохранения аккаунта // sqilite - White_116 - 28.02.2014

Одно могу сказать, вшитый SQL странно себя ведёт. На начальном этапе время создания и апдейта очень большие. Но по мере её увеличение всё нормализуется, не космические скорости, но терпимо.
У меня сервер 30 игроков ~ 300-600 мс сохраняет. А раньше 1300-2000 мс.
Странно всё это.