sql >> データベース >  >> RDS >> Mysql

MySQL 5では、SELECT COUNT(1)FROMtable_nameは非常に遅いです

    テーブル内のすべての行をカウントするのは非常に遅い操作です。どこか別の場所でカウントを維持する準備ができていない限り、実際にスピードアップすることはできません(もちろん、同期が外れる可能性があります)。

    MyISAMに慣れている人は、count(*)を「無料で」入手できると思う傾向がありますが、実際はそうではありません。 MyISAMは、MVCCを持たないことで不正行為を行うため、かなり簡単になります。

    表示しているクエリは、null以外のインデックスの完全なインデックススキャンを実行しています。これは、通常、innodbテーブルの行をカウントする最も速い方法です。

    提供した情報からアプリケーションが何であるかを推測することは困難ですが、一般に、ユーザー(など)が大きなテーブルの行数の概算を確認することは問題ありません。



    1. なぜ外部キーを使用する必要があるのですか?

    2. varchar(20)とvarchar(50)は同じですか?

    3. MySQL DROP UNIQUE CONSTRAINT

    4. 異なるデータベース間で列を選択します