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


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

можно повысить производительность отключив синхранизацию с базой данных, по умолчанию стоит FULL — полная синхронизация, в запасе еще 2-ва варианта:
NORMAL — частичная
OFF — синхронизация отключена
использовать проще простого
PHP Code:
db_query (database"PRAGMA synchronous = NORMAL; UPDATE база даных SET значение WHERE условие"); 
NORMAL - повысит производительность раз в 10 думаю
OFF - раз в 100
точно не знаю это мои предположения, тк тесты не проводил и никогда не использовал и к чему это может привести тоже не скажу=)


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

обьясни на примере если не сложно)


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

а мне казалось понятно обьяснил и показал, ну да ладно...
PHP Code:
save_user(userid){
    new 
str[600];
    new 
time GetTickCount();
    
format(str,500,"PRAGMA synchronous = OFF; 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);