※ ChatGPTを利用し、要約された質問です(原文:SQLiteとファイルキャッシュではどちらが高速か?)
SQLiteとファイルキャッシュ、どちらが高速?
このQ&Aのポイント
SQLiteとPHPのファイルキャッシュを使っている場合、どちらを使うべきか迷っている。
SQLiteはインデックスを使用し、SELECT時にはIDで取得するため高速である。
ファイルキャッシュはファイル名を使用してデータを取得するが、データ数が増えると遅くなる可能性がある。
SQLiteとファイルキャッシュではどちらが高速か?
現在、SQLiteとPHPのキャッシュ(Cache_Liteなど)をともに使っているのですが、
どちらも使えそうな場合、どちらを使うか
迷いながら長い間使っています。
そこで、以下のような場合どちらを使うのがおすすめか
意見をお願いしたく思います。
SQLiteでいえば
ID content
1 比較的長い文章1..
2 比較的長い文章2..
3 比較的長い文章3..
.....
キャッシュ(ファイル)であれば
ファイル名:1 内容:比較的長い文章1..
ファイル名:2 内容:比較的長い文章2..
ファイル名:3 内容:比較的長い文章3..
.....
のようなものです。
SQLiteの場合、インデックスはIDにあり、検索時(SELECT時のWHEREなど)も
文章(content)の方で行うことはなく、IDでSELECTして取り出すのみです。
さらに、この
[比較的長い文章..]
は更新されたり、レコードorファイルごと削除される可能性があるとします。
このとき、データ数が数千数万~と膨大になるとき、
直近・将来的にどちらが遅くなる、あるいは不便になる(壊れるなど)
ことがありうるでしょうか。
なお、こういうものは「一般的にどっちの方が良いとはいえない、場合によるものだ」ということは重々承知しておりますが、その上で
おすすめや使い分けがありましたら、あるいは速度的な情報がありましたら、ぜひよろしくお願いいたします。
お礼
回答ありがとうございます。 >単純な入出力なら、RDBMSでなくOSレベルの入出力の方が単純だし、速い >RDBMSにするメリットは、SQLによる柔軟な操作 なるほど、なんとなくそうではないかなと思っていたのですが、 chukenkenkou様のように詳しい方にアドバイスをいただけると、たいへん助けになります。ありがとうございます。 ORDERやWHERE、LIKEなどで検索・取り出し時の利便性が必要だったり、JOINだったり、複雑な(このくらいは単純な方だと思いますが)処理が必要なときにはSQLiteを使い、 上記質問文のような「単なるデータの保持」の場合はファイルによるキャッシュを利用していこうかとおもいます。 また、他に何か関連することなどでアドバイスがありましたら、 どなたでも、どんな些細なことでもかまいませんのでどうぞよろしくお願いします。