次の単純な構造のMySqlテーブルを使用しています。
ID_A:int 8
ID_B:int 8
主キー:ID_A、ID_Bインデックス:ID_B
このMySQLテーブルには5億を超える行が含まれており、重みは20Goです。
私はそれらの種類のクエリを実行できる必要があります:
select *,count(*) as cpt from table group by ID_A order by cpt DESC select *,count(*) as cpt from table group by ID_B order by cpt DESC select * from table where ID_A in (1,2,3,4,5,5) select * from table where ID_B in (1,2,3,4,5,5) select *,count(*) as cpt from table where ID_B in (1,2,3,4,5) group by ID_A order by cpt DESC select *,count(*) as cpt from table where ID_A in (1,2,3,4,5) group by ID_B order by cpt DESC
innodbとMyIsamを試しましたが、大きな構成サーバーを使用しても、mysqlはGroupByクエリに応答できません。大量のメモリを消費するため、スクリプト側からも実行できません。
すべてのデータをRAMに収めることはできません(現在は20Goですが、近い将来は60Goになります)。
NoSqlデータベースを使用する必要がありますか?MongoDB?マップリデュースDB?
助けてくれてありがとう