私はテーブルを持っています
CREATE TABLE `uli` (
`id` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
テーブルには、常に 1 つの行に 1 つの値が含まれます。しかし、それは頻繁に変更される可能性があります。選択を行い、他の接続のためにテーブルをロックし、値を更新してロックを解除したいと思います。たとえば、次のコードはうまく機能します。
LOCK TABLES uli WRITE;
SELECT * FROM uli;
UPDATE uli SET id=id+1;
UNLOCK TABLES;
最初の接続はロック解除されませんが、他のすべての接続は待機し、ロック解除後にのみ新しい値が表示されます。それがまさに私が欲しいものです。よりエレガントなソリューションが存在しますか?MyIsam または Innodb テーブルを使用することは重要ですか?