MySQL の非ロック SELECT クエリ
MySQL では、テーブルが同時に変更されると、SELECT 操作中に頻繁にロックが発生する可能性があります。この問題を軽減するには、非ロック読み取りを可能にする手法の使用を検討してください。
READ UNCOMMITTED の使用
1 つの方法は、トランザクション分離レベルを READ UNCOMMITTED に設定することです。これにより、ロックを取得せずに読み取りが可能になります。ただし、このオプションはデータの整合性が損なわれるため、スレーブには適さない可能性があります。
WITH (NOLOCK) と同等の SQL
WITH (NOLOCK) と同等の場合Microsoft SQL Server の句、MySQL は複数のステップを提供しますプロセス:
READ UNCOMMITTED 分離を使用してトランザクションを開始します:
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT クエリを実行します:
SELECT * FROM TABLE_NAME;
トランザクション分離レベルをリセットして元に戻しますREPEATABLE READ:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
改良された非ロック クエリ実行
Michael Mior は、非ロック クエリ実行の改良版を提案しました。
トランザクション分離を設定するREAD UNCOMMITTED のレベル:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT クエリの実行:
SELECT * FROM TABLE_NAME ;
トランザクションのコミット:
COMMIT ;
以上がMySQL で非ロック SELECT クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。