mysqlのカウント(14)

1、異なるエンジンが異なる実装を持っています。直接ディスク上のMyISAMを直接読み取ることができます。InnoDBは行ずつ読み込む必要があり、その後、蓄積されました。

図2は、理由MVCC(マルチバージョン同時実行制御)のInnoDBは、同時にデータは、一貫性のない異なる応答クエリであってもよいです

3、表の状態は表の行数を表示しますが、正確なことはできません表示します。

4、それは数える方法:まず、キャッシュを使用して、行、キーにプラス1、マイナスそれを削除するには1を挿入し、そこのRedisは更新を再起動することによる損失につながる可能性があるが、それでもRedisの作品も不正確なデータの問題を表示されます:DBでのRedisは、分散トランザクションをサポートするので、2つの操作の中央部に書き込まないので、第一または最初の読み出し読み出さデシベルのRedisが発生する可能性が正確であるか否か、リードスレッドに来ます。

                                 第二に、別のデータベーステーブルがカウントされます。前回のトランザクション分離に依存しています。トランザクションの外で動作コミットされていないトランザクションは、表示されていない場合は、更新とは、トランザクション内のレコードの新しいレコード番号を追加します。更新が行ロックをトリガするため、新しいレコードを追加し、その後、レコード、レコードの数の数を更新し、行ロックは、トランザクションがコミットされた場合にのみリリースされたプログラムの終了を置いた場合、最初に注文コードことに注意してください、それが大幅に並行性を向上します。

5、いくつかの方法で、カウントの効率を比較しました。COUNT(*)〜=カウント数( 1)>数( 主キー)>数(1つのフィールド)

おすすめ

転載: www.cnblogs.com/enchaolee/p/11671533.html