私は lsqlite3 lua ラッパーを使用しており、クエリをデータベースに作成しています。私のDBには約500万行あり、行を取得するために使用しているコードは次のようなものです:
db = lsqlite3.open('mydb')
local temp = {}
local sql = "SELECT A,B FROM tab where FOO=BAR ORDER BY A DESC LIMIT N"
for row in db:nrows(sql) do temp[row['key']] = row['col1'] end
Nご覧のとおり、一番上の行を降順で並べ替えようとしています(一番上の行を取得してから、逆ではなくFOO適用したい)。LIMIT列にインデックスを付けましたAが、大きな違いはないようです。どうすればこれをより速くすることができますか?