Hикита
Умник
Немного о сохранении переменных в бд.
Ку.
Практически в каждом игровом моде замечаю, что люди, работающие с системой управление базами данных MySQL, обновляют абсолютно все данные в одном запросе даже в тех случаях, если была изменена хоть одна переменная, а иногда и просто так.
Глупо, используя ещё и общий размер строки тысячи две, а то и больше.
На сервере, игроков которого можно пересчитать по пальцам, это - пустяк, а там, где онлайн за пределами сотни? Огромные запросы, да ещё и каждую минуту, а у некоторых секунду - завалят его. Сохранять аккаунты, допустим, через каждый час - тоже не вариант, верно? Ведь можно сделать проще: выполнять запросы на обновление определённых данных во время изменения их значения. То есть, когда мы присвоили определённой переменной, существующей в базе данных, другое значение, тогда обновляем в строке только тот столбец, который был изменён.
Например:
Для обновления сразу нескольких столбцов, необходимо через запятую их дописать.
Ку.
Практически в каждом игровом моде замечаю, что люди, работающие с системой управление базами данных MySQL, обновляют абсолютно все данные в одном запросе даже в тех случаях, если была изменена хоть одна переменная, а иногда и просто так.
PHP:
mysql_format ( 1, query, "UPDATE db SET Q = %i, W = %i, E = %i", Q, W, E );
mysql_format ( 1, query, "%s, A = %i, S = %i, D = %i WHERE ID = 1", query, A, S, D );
...
mysql_tquery ( 1, query );
На сервере, игроков которого можно пересчитать по пальцам, это - пустяк, а там, где онлайн за пределами сотни? Огромные запросы, да ещё и каждую минуту, а у некоторых секунду - завалят его. Сохранять аккаунты, допустим, через каждый час - тоже не вариант, верно? Ведь можно сделать проще: выполнять запросы на обновление определённых данных во время изменения их значения. То есть, когда мы присвоили определённой переменной, существующей в базе данных, другое значение, тогда обновляем в строке только тот столбец, который был изменён.
Например:
PHP:
A = 1; // переменная 'A' изменена
// отправляем запрос на обновление столбца 'A', в строке с id равным 1
mysql_format ( 1, query, "UPDATE db SET A = %i WHERE ID = 1", A );
mysql_tquery ( 1, query );
PHP:
"UPDATE db SET A = 1, B = 2, C = 3 WHERE ID = 1"
Последнее редактирование:
