私は数百万のレコードを含むテーブルを使用しており、それに対する理由を報告するためにクエリを実行する必要があります。結合のレベルなどによっては、数時間かかる場合があります。クエリを最適化する方法はたくさんあることは知っていますが、別のアプローチの可能性に興味があります。
PHP(MySQLではネイティブではない)を介して、MySQLクエリ(たとえば「SELECT * FROMテーブル」)の結果を取得し、それを配列としてMemcachedに格納してから、そのキャッシュされたバージョンに対してクエリを実行することは可能ですか?もっと速くなるでしょうか?大まかに、それはどのように機能しますか?つまり、クエリとは、次のような配列を検索することです。
Array[0] {
Array[0] {
'field1' => 'value1',
'field2' => 'value2',
'field3' => 'value3'
},
Array[1] {
'field1' => 'value1',
'field2' => 'value2',
'field3' => 'value3'
}
Array[2] {
'field1' => 'value1',
'field2' => 'value2',
'field3' => 'value3'
}
}
MySQLにクエリを実行させるよりも効率的にPHP配列を「クエリ」する方法はありますか?本当にこれはすべてNoSQLソリューションを利用する絶好の機会のように聞こえますが、残念ながら、私はそれを制御できません。
[編集]
私たちは約50のデータベースに分散したデータを扱っており、それぞれに50万から5000万の行があるおそらく50のテーブルが含まれています。それはすべてレガシーであり、最適化が不十分です。私が持っているもので作業しようとしているだけです。
すべてのデータベースは同じスレーブサーバー上にあり、はい、クロスデータベースであるクエリを実行する必要があります。MySQLに作業を任せるよりも、コードを介してうまく処理できるかどうかを確認したいと思っていたのは厄介な状況です(私が聞いていることから、答えはおそらくノーです)