私は、MVC フレームワークを使用するいくつかの PHP プロジェクトに取り組んでいます。それらはすべて、データベースからオブジェクトを取得するさまざまな方法を持っていますが、速度と数の削減に関しては、手動で SQL クエリを記述することに勝るものはないように常に思えます。クエリ。
たとえば、私の Web プロジェクト (若手開発者が作成) の 1 つは、ホームページをロードするためだけに 100 を超えるクエリを実行します。その理由は、ある場所ではメソッドがオブジェクトをロードしますが、コードの後半で、最初のオブジェクトに関連する他のオブジェクトをロードするからです。
これは、コードの一部でいくつかの列の値のみを必要とし、別の部分で何か他のものを必要とするテーブルがある状況で、人々は何をしているのかという質問の別の部分につながります。現在 (同じプロジェクト内)、オブジェクトごとに 1 つの get() メソッドがあり、「SELECT *」を実行する (またはテーブル内のすべての列を明示的にリストする) ため、何らかの理由でいつでもオブジェクトが必要になります。あなたはすべてを手に入れます。
つまり、 SELECT * がいかに悪いかという話をよく耳にしますが、フレームワークに付属の ORM クラスを使用しようとすると、通常はそれを実行しようとします。SELECT * を使用して ORM を選択するのではなく、特定の SQL クエリを手動で作成することにこだわっていますか? 便利さと効率の間で立ち往生しているように思えます。クエリを手書きすると、列を追加すると、コードのいくつかの場所に追加する必要が生じる可能性が高くなります。
長い質問で申し訳ありませんが、特定の解決策ではなく、他の開発者からいくつかの考え方を得るための背景を説明しています。Memcached のようなものをいつでも使用できることはわかっていますが、その前にできることを最適化したいと思います。
アイデアをありがとう。