全文検索したい その3
・環境
Windows XP SP2
メモリ 1GB
CPU P4 3GHz
PostgreSQL 8.1.4.1
JDBC postgresql-8.1-407.jdbc2.jar
Hyper Estraier 1.3.3
Java SE 5
Eclipse 3.2
・100万件の全件レコード検索
select * from items;
147625ms
・全レコード数をカウント
select count(*) from items;
859ms
・primary key で検索
select * from items where id = 'ID10';
16ms
・頭固定
select * from items where name like '0%';
1094ms
・全文検索
select * from items where name like '%0%';
75796ms
・Hyper EstraierでDB内データのインデックス作成(100万件)
1455360ms
・Hyper EstraierのJavaAPIを使って全文検索(100万件)
63ms
速さ1000倍以上・・・・・・?
ということで、
基本的には通常のDBとしてPostgresなどを採用し、
全文検索したい場合にはDBとは別にインデックスを持ってはいかがでしょうか?
あ、そうだ。
Hyper Estraierの多重アクセスは問題ないのかなぁ。
次の実験は1秒間に100スレッドぐらい立てて動かしてみよう。