如何在MBTiles数据库上运行VACUUM?

时间:2017-01-05 16:57:52

标签: sqlite mbtiles

我使用MapProxy创建MBTiles数据库。删除mapproxy-seed.exe --cleanup文件后,我知道我需要运行真空,如this mailing list answer中所示:

  

当你移除较大的瓷砖块时,你需要做一个   真空

this other mailing list answer:

  

如果删除记录,SQLite不会“释放内存”,但会重新使用该空间。   请参阅https://sqlite.org/lang_vacuum.html,但请注意,您的缓存在VACUUM期间不可用。

但我如何实际运行VACUUM流程?我是否需要使用外部管理器连接到我的.mbtiles数据库,或者我可以从命令行以某种方式运行它?

1 个答案:

答案 0 :(得分:1)

VACUUM是一个SQL语句,可以像任何其他SQL语句一样运行。

如果您没有任何其他机制,download工具包并运行:

x = np.linspace(1735.0,1775.0,100)
column1 = (data[0,0:-1]+data[0,1:])/2.0
column2 = data[1,1:]
x_column1 = np.zeros(x.size+2)
x_column1[1:-1] = x
x_column1[0] = x[0]+x[0]-x[1]
x_column1[-1] = x[-1]+x[-1]-x[-2]
experiment = np.zeros_like(x)
for i in range(np.size(x_edges)-2):
    indexes = np.flatnonzero(np.logical_and((column1>=x_column1[i]),(column1<x_column1[i+1])))
    temp_column2 = column2[indexes]
    temp_column2[0] -= column2[indexes[0]]*(x_column1[i]-column1[indexes[0]-1])/(column1[indexes[0]]-column1[indexes[0]-1])
    temp_column2[-1] -= column2[indexes[-1]]*(column1[indexes[-1]+1]-x_column1[i+1])/(column1[indexes[-1]+1]-column1[indexes[-1]])
    experiment[i] = np.sum(temp_column2)   
return experiment