Я развожу некоторые скрипты php, и мне нужно обновить строку mysql, чтобы отслеживать некоторые улучшения. Я читал, что я должен использовать InnoDB для этого, но я не могу найти полный пример, который я могу понять. Друг сказал мне, что он использует этот PHP код:Как обновить ту же строку mysql из нескольких сценариев одновременно?
mysql_query("SET AUTOCOMMIT=0;");
mysql_query("START TRANSACTION;");
mysql_query("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
// UPDATE QUERY HERE
mysql_query("COMMIT;");
mysql_query("UNLOCK TABLES;");
mysql_query("SET AUTOCOMMIT=1;");
Он сказал мне, что он пытался другие методы, но все остальное, чем этот код перегруженный его сервер через некоторое время.
Может ли кто-нибудь сказать мне, будет ли этот код делать то, что мне нужно, или если есть лучший способ сделать это?
Вы имеете в виду, что мне даже не нужно использовать код, который я разместил, и я могу просто ОБНОВИТЬ строку из нескольких сценариев, не беспокоясь, попытаются ли они сделать это одновременно? (Мне просто нужно добавить столбец + 1 в столбец строки, чтобы не требовался порядок, но мне нужно прочитать значение столбца) – jarkam
Точно. Это красота MySQL и большинство систем баз данных. Вам не нужно беспокоиться о тупиках или условиях гонки. Если вы просто увеличиваете поле, вам не о чем беспокоиться. –
Если на 100 разных сценариях вы увеличиваете одно и то же поле в одно и то же (или почти одинаковое) время, вы можете быть уверены, что конечное значение поля будет на 100 больше, чем оно было (после того, как все 100 операторов выполнены , конечно.) –