Python で n-gram カウントを実行しようとしていますが、MySQL (MySQLdb モジュール) を使用してテキスト データを整理できると考えました。
varchar
一意の数値 ID (自動インクリメント) と言語フィールド (例: "en"、"de"、"es" など)によってインデックス付けされたドキュメントを表す、約 1000 万レコードのかなり大きなテーブルがあります。
select * from table
遅すぎて、メモリが壊滅的です。ID 範囲全体を小さな範囲 (たとえば、それぞれ 2000 レコード幅) に分割し、次のようなクエリを使用して、これらの小さなレコード セットを 1 つずつ処理することになりました。
select * from table where id >= 1 and id <= 1999
select * from table where id >= 2000 and id <= 2999
等々...
MySQL でより効率的に実行し、大きなコーパス テキスト ファイルをシリアルに読み取るのと同様のパフォーマンスを達成する方法はありますか?
レコードの順序は気にしません。大きなテーブルで特定の言語に関連するすべてのドキュメントを処理できるようにしたいだけです。