300,000 レコードを超えるテーブルがあり、テーブル構造は次のとおりです。
id | title | source | description | date | fullindex
id は PRIMARY キー、date はインデックスを追加、source はインデックスを追加、fullindex はフルテキスト インデックスを追加。
今、私はクエリを作成したいと思います。全文検索でグループごとに最新の 5 つ。
私が試してみました
SELECT 'a' as t_name,id,title,source,description,date,fullindex
FROM table1 a1
WHERE MATCH (fullindex) AGAINST ('+bool' IN BOOLEAN MODE)
and 6>(select count(*) from table1 where source=a1.source and date>a1.date)
しかし、このクエリには 6.5987 秒のコストがかかり、愛情は非常に低くなります。
では、より迅速なクエリを作成するにはどうすればよいでしょうか。
PS: Google で検索mysql greatest n per group
しましたが、スキルが限られているため、MySQL マスターの助けを待って、より良いコードを自分で作成することはできませんでした。