2017-11-07 9 views
0

私はPHPを使っていくつかのMySQLクエリを生成しています。場合によっては、セキュリティ上の予防措置のために、一部のクエリに対して重複したクエリコードが生成されることがあります。たとえば、ユーザーがアップロードした画像が入っているテーブルUploadedImagesがあるとします。それは参照によってUserテーブルに接続されています。プレーンなユーザーがそのテーブルを照会したいときに、彼が管理者権限を持っていなければ、私は強制的にWHEREの条件をクエリに入れます。クエリの条件はクエリにのみ含まれます。このためforcefullインクルージョンのこのクエリをクリーンアップする必要がありますか、MariaDBがこれを処理しますか?

、時々、私は二重に結果を生成するクエリが条件:

SELECT * FROM UploadedImages WHERE 
    accounts_AccountId = '143' AND 
    DateUploaded > '2017-10-11 21:42:32' AND 
    accounts_AccountId = '143' 

が、私はそれを実行する前に、このクエリを掃除して、気にすべき、またはMariaDBのためにそれをクリーンアップします私? (つまり、このクエリーは遅く実行されますか、または同じ重複条件を削除することでエラーが発生する可能性はありますか?)

答えて

1

質問は「私はそれは、同じ節を複数回含むことができるという事実から、データベース層が特に現代的なレベルに抽象化されていないことを示唆しているからです。データベース層は、それに依存するコードを変更することなく、別のデータベースプロバイダを使用するように書き直すことができます。それはそうでないように見える。

質問が「同じ制限を2回追加するとクエリが遅くなるのですか?その答えは重要ではなく、いいえです。

0

あなた自身で質問に答えることができます。両方のクエリでEXPLAIN SELECT ...を実行します。出力が同じ場合、dupはクリーンアップされました。

関連する問題