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

PHP PERFORMANCE-WISEでMySQLのプリペアドステートメントを使用する必要がありますか?

    歴史

    これが私の最初のStackoverflowの答えでした。それ以来、多くの変更がありました。特にmysqlAPIの非推奨と削除です。まだphp5.6を使用している場合でも、mysql_*apiは使用しないでください。現在、選択できるオプションはPDOまたはmysqliのみです。 PDOは多くの理由で優れています。

    プリペアドステートメントはページの読み込み全体でキャッシュされていますか?

    同じプリペアドステートメントは、ページの読み込みの間に使用されません。毎回準備する必要があります。大きなミリ秒ごとにスクイーズすることが重要な場合は、ストアドプロシージャを使用することをお勧めします(複雑なクエリがある場合)。

    大きな挿入(数千行)の場合、データをテキストファイルにダンプし、LOAD DATA IN FILEを使用してロードすることで、より大きなブーストを得ることができます。一連のインサートよりもはるかに高速です。

    元の答え

    問題の真実は、mysqliの方が速い場合もあれば、mysqlapiの方が速い場合もあるということです。しかし、違いは本当に小さいです。 Webでパフォーマンステストのいずれかを見ると、違いは実際にはわずか10〜20ミリ秒です。パフォーマンスを向上させる最善の方法は、テーブルの設計を最適化することです。

    古いAPIがより高速であることを「証明」するテストの多くは、最大限のセキュリティを確保するために、クエリで使用される変数ごとにmysql_real_escape_string()を呼び出す必要があることを忘れてしまいます。

    クエリで使用されるすべてのテーブルのデータが変更されていない場合にのみ、クエリはサーバーによってキャッシュされます。

    実際の数値で別の更新を待つ



    1. datagrip変更を適用できませんこのテーブルは読み取り専用です。セルエディタの変更は適用できません

    2. OracleAppsR12.2でTLSを有効にする

    3. ゼロを無視するMysqlAVG

    4. SpringBoot構成で正しいMySQLJDBCタイムゾーンを設定する方法