Nic*_* Yu 5 sql database sqlite database-design
我有一个地理地图数据库,其中包含 x、y、z、缩放和类型列。最初使用call时读取速度很慢
SELECT image WHERE x = ... AND y=... AND zoom=... AND type =...
Run Code Online (Sandbox Code Playgroud)
感谢堆栈溢出的帮助,我发现 (x,y,z,zoom) 的索引显着提高了读取速度。
但是,我有一个问题,这个 CREATE INDEX 命令只需要在数据库第一次初始化时发出一次吗?而且即使数据库逐渐长大,它仍然会享受索引带来的读取速度提升吗?
或者我是否需要每次关闭应用程序之前发出 CREATE INDEX 命令(在应用程序期间,数据库会增长)?
您只需要创建一次索引。
数据库将记住带有索引的列,并将随着表一起不断更改索引。
如果向表中插入条目,它将被添加到索引中。如果您更改条目 - 它将在索引中进行修改。最后,如果您删除一个条目 - 它将从索引中删除。
请注意,索引将加快您SELECT在索引列上的搜索操作,但会降级INSERT, UPDATE, DELETE。