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

mysqlで多くのフィールドを呼び出すときに*を使用するのが最適ですか?

    注: もちろん、すべてのフィールドに名前を付けることはベストプラクティスですが、この投稿では、パフォーマンス上の利点についてのみ説明し、設計や保守の利点については説明しません。

    * 次の理由により、構文が遅くなる可能性があります。

    • すべてのフィールドにインデックスが付けられるわけではなく、クエリは全表スキャンを使用します。おそらくあなたの場合ではありません。返されるすべてのフィールドが単一のインデックスでインデックス付けされる可能性はほとんどありません。

    • 可変長の列を含むテーブルから末尾のフィールドを返すと、わずかな検索オーバーヘッドが発生する可能性があります。20thを返すには フィールド、前の19 調べてオフセットを計算する必要があります。

    • さらに多くのデータを返す必要があります(接続を介して渡されます)。

    ほとんどすべてのフィールドが必要なので、最後の理由がおそらく最も重要な理由です。たとえば、description TEXT フィールドは1のみにすることができます 50の ページでは使用されていないが、10を占める可能性のあるフィールド 他のすべてのフィールドを合わせた場合の2倍のスペース。

    この場合、もちろん、すべてのフィールドに名前を付け、不要な長いフィールドを省略したほうがよいでしょう。



    1. 生年月日とgetDate()に基づいて年齢(年)を計算する方法

    2. 値が配列にあるプリペアドステートメント

    3. android/phpレコードがmysqlに挿入されていません

    4. MySQLステートメントでORを使用することは、括弧の有無でどの程度正確に異なりますか?