コロナ/ルア アプリ用に sqlite を使用してテーブルを作成しました。~=700 000 の値を持つハッシュテーブルです。テーブルには、ハッシュコード (文字列) と値 (別の文字列) の 2 つの列があります。プログラム中に、ハッシュコードを提供してデータを数回取得する必要があります。
私はデータを取得するためにこのコードのようなものを使用しています:
for p in db:nrows([[SELECT * FROM test WHERE id=']].."hashcode"..[[';]]) do
print(p)
-- p = returned value --
end
このステートメントは、実行するのに非常に時間がかかりすぎますが、
ありがとう、
編集:
成功!間違いは主キーの問題でした。以下のようにハッシュコードを主キーとして設定し、取得時間を通常に設定しました。
CREATE TABLE IF NOT EXISTS test (id STRING PRIMARY KEY , array);
あなたが言ったように、私も事前に声明を準備しました:
stmt = db:prepare("SELECT * FROM test WHERE id = ?;")
[...]
stmt:bind(1,s)
for p in stmt:nrows() do
唯一の問題は、約 18 MB だった db ファイルのサイズが 29,5 MB になったことです。