私は木の中のいくつかのキーと値のペアをデータストレージとして使う小さなスタンドアロンのLuaツールを書いています。私のプロトタイプはLuaテーブルを使用しています。ただし、テーブルエントリは連続的に変化し、増加します。私にとっては、それはデータベースにすべてのデータを保存するのには良い理由のようです。いくつかのLuaテーブルを小さなデータベースに保管しますか?
多くの小さなツールはSQLiteデータベースに依存していますが、中小サイズのLuaテーブルを保存する場合は、より良い(キー値)ソリューションが必要です。私はSQLでツリーを格納することについて読んだが、一見すると複雑に見える。
データベース内にLuaテーブルを格納して検索するためのソリューションがありますか?クエリ言語と共に使用しますか?KISS
データベースは依然として小さく、永続性があり、並列クエリを処理する必要はありません。パフォーマンスも問題ありません。ツールはシングルユーザーのみです。私はディスク/ファイルベースのDBを好むだろう。理想的には、DBへの更新(クエリ/スクリプト)は、バージョン管理下にあるものとする。
私は(G)dbmを考えていましたが(hereを参照)、新しいエントリを変更したり作成したりする簡単な "スクリプト可能な"方法についてはわかりません。
MongoDBやNeo4jのようなグラフDBのような完全なサーバーベースのソリューションを避けたいのであれば、彼らは私の仕事のために過労です。
性能が問題にならない「中小サイズのLuaテーブル」では、JSONのような標準フォーマットにシリアル化しないのはなぜですか?おそらくデータベースは過度のものになるでしょう。 –
@ColonelThirtyTwoしかし、その場合は、データをLuaテーブルだけを含むluaファイルに残しておきます。 JSONはデータを格納するだけの場合、Luaテーブルに匹敵する1:1ではありませんか? – smartmic
あなたはそれを避けているように見えますが、私はSQLite3のアプローチに行きます。非常にシンプルで高速でスケーラブルで、強力なSQL(再帰的なクエリ - ツリー構造に適しています)を使用し、ACIDデータベースを提供し、メインメモリが大量のデータセットを保持するのを軽減します。 – tonypdmtr