現在、私は非常に高度な PHP 開発者であり、小規模な MySQL セットに精通していますが、最近参加したスタートアップのために大規模なインフラストラクチャを構築しており、そのサーバーは毎日約 100 万行のデータをプッシュしています。巨大なサーバー パワーと以前のアーキテクチャ。
データベース サイズが 394.4 ギガバイトの大きなデータ セット (現在 8,490 万行) を検索する最善の方法を知る必要があります。Amazon RDS を使用してホストされているため、ダウンタイムや速度低下はありません。大規模なデータ セットに内部的にアクセスするための最良の方法を知りたいだけです。
たとえば、8,400 万行のデータベースを検索する場合、6 分かかります。これで、特定の ID またはタイトルに直接リクエストを送信すると、すぐにそれが提供されます。では、大規模なデータ セットを検索するにはどうすればよいでしょうか。
1 つの変数を渡してデータベースから情報を検索するのは高速ですが、検索の実行速度は非常に遅くなります。
MySQL クエリの例:
SELECT u.*, COUNT(*) AS user_count, f.* FROM users u LEFT JOIN friends f ON u.user_id=(f.friend_from||f.friend_to) WHERE u.user_name LIKE ('%james%smith%') GROUP BY u.signed_up LIMIT 0, 100
8,400 万行未満のクエリは非常に低速です。具体的には、このクエリをスタンドアロンで実行するのに 47.41 秒かかります。何かアイデアはありますか?
私が必要とするのは、その課題が分類され、ドリフトを取得できることだけです. また、MySQL は大規模なデータ セットや Oracle や MSSQL などにはあまり適していませんが、現時点では他のデータベース ソリューションではなく MySQL で再構築するように言われています。