草庐IT

query-performance

全部标签

performance - 用于客户端-服务器的 SQLite

我在Stackoverflow上看到了几个SQLite性能问题,但重点是网站,我正在考虑在客户端-服务器场景中使用这个数据库:我预计目前一台服务器有1-10个客户端,将来可能会增加到50个或更多。读取略多于写入数据库将位于服务器进程后面(即:不通过网络使用直接数据库访问)与使用PostgreSQL相比,使用SQLite是否会降低应用的响应速度?我的直觉告诉我,这些负载应该没问题,但也许有人对这种情况有一些实际经验。 最佳答案 我确实将SQLite用于一个主要的客户端/服务器产品,该产品与约10个并发用户一起使用,我对那个决定深感遗憾

performance - 用于客户端-服务器的 SQLite

我在Stackoverflow上看到了几个SQLite性能问题,但重点是网站,我正在考虑在客户端-服务器场景中使用这个数据库:我预计目前一台服务器有1-10个客户端,将来可能会增加到50个或更多。读取略多于写入数据库将位于服务器进程后面(即:不通过网络使用直接数据库访问)与使用PostgreSQL相比,使用SQLite是否会降低应用的响应速度?我的直觉告诉我,这些负载应该没问题,但也许有人对这种情况有一些实际经验。 最佳答案 我确实将SQLite用于一个主要的客户端/服务器产品,该产品与约10个并发用户一起使用,我对那个决定深感遗憾

performance - SQLite 是否适合用作 Web 服务器上的只读缓存?

我目前正在构建一个在网络前端使用python的高流量GIS系统。该系统是99%只读的。为了提高性能,我正在考虑使用外部生成的预生成读取优化GIS信息的缓存,并将其存储在每个单独的Web服务器上的SQLite数据库中。简而言之,它将用作分布式只读缓存,无需在网络上跳跃。后端OLTP存储将是postgreSQL,但它只能处理不到1%的请求。我考虑过使用Redis,但数据集非常大,因此它会增加托管虚拟机的管理成本和内存成本。Memcache不适合,因为它不能进行范围查询。我这样做会遇到SQLite的读取并发问题吗?这是明智的做法吗? 最佳答案

performance - SQLite 是否适合用作 Web 服务器上的只读缓存?

我目前正在构建一个在网络前端使用python的高流量GIS系统。该系统是99%只读的。为了提高性能,我正在考虑使用外部生成的预生成读取优化GIS信息的缓存,并将其存储在每个单独的Web服务器上的SQLite数据库中。简而言之,它将用作分布式只读缓存,无需在网络上跳跃。后端OLTP存储将是postgreSQL,但它只能处理不到1%的请求。我考虑过使用Redis,但数据集非常大,因此它会增加托管虚拟机的管理成本和内存成本。Memcache不适合,因为它不能进行范围查询。我这样做会遇到SQLite的读取并发问题吗?这是明智的做法吗? 最佳答案

Android SQLite 使用 db.query() 进行 JOIN 而不是 rawquery()

我有表A、表B和表C表A和表B通过tableA.Id(PK)=tableB.tableAId(FK)连接tableB和tableC通过tableB.Id(PK)=tableC.tableBId(FK)连接我希望能够做到这一点:SELECTc.ALLfromtableCcINNERJOINtableBbonc.tableBId=b.IdINNERJOINtableAaonb.tableAId=a.IdWHEREa.Id=108我在网上找到了很多使用db.rawquery()来实现这个查询的帖子。但是我也听说rawquery()不如query()安全。因此,为了寻求初学者的最佳实践,我的问

Android SQLite 使用 db.query() 进行 JOIN 而不是 rawquery()

我有表A、表B和表C表A和表B通过tableA.Id(PK)=tableB.tableAId(FK)连接tableB和tableC通过tableB.Id(PK)=tableC.tableBId(FK)连接我希望能够做到这一点:SELECTc.ALLfromtableCcINNERJOINtableBbonc.tableBId=b.IdINNERJOINtableAaonb.tableAId=a.IdWHEREa.Id=108我在网上找到了很多使用db.rawquery()来实现这个查询的帖子。但是我也听说rawquery()不如query()安全。因此,为了寻求初学者的最佳实践,我的问

SQLite:LIKE 'searchstr%' 应该使用索引吗?

我有一个包含多个字段的数据库word_id—INTEGERPRIMARY_KEYword—TEXT.....和约15万行。由于这是一本字典,我正在使用LIKE搜索带有掩码'search_string%'的单词。它过去工作得很好,需要15毫秒才能找到匹配的行。该表具有字段'word'的索引。最近我修改了表(该表的某些字段超出了范围)并且发生了一些事情-执行查询需要400毫秒,所以我理解它现在无法使用索引。使用=而不是like的直接查询显示10ms结果。有人知道这里发生了什么吗? 最佳答案 在这种情况下不能安全地使用索引。天真的实现会改

SQLite:LIKE 'searchstr%' 应该使用索引吗?

我有一个包含多个字段的数据库word_id—INTEGERPRIMARY_KEYword—TEXT.....和约15万行。由于这是一本字典,我正在使用LIKE搜索带有掩码'search_string%'的单词。它过去工作得很好,需要15毫秒才能找到匹配的行。该表具有字段'word'的索引。最近我修改了表(该表的某些字段超出了范围)并且发生了一些事情-执行查询需要400毫秒,所以我理解它现在无法使用索引。使用=而不是like的直接查询显示10ms结果。有人知道这里发生了什么吗? 最佳答案 在这种情况下不能安全地使用索引。天真的实现会改

performance - 这个 SQLite 查询可以更快吗?

我有一个代表安全摄像头NVR元数据的数据库。有一个26字节的recording每1分钟的视频片段行。(如果您很好奇,设计文档正在进行中here。)我的设计限制是8个摄像头,1年(约400万行,每个摄像头50万个)。我伪造了一些数据来测试性能。这个查询比我预期的要慢:selectrecording.start_time_90k,recording.duration_90k,recording.video_samples,recording.sample_file_bytes,recording.video_sample_entry_idfromrecordingwherecamera_i

performance - 这个 SQLite 查询可以更快吗?

我有一个代表安全摄像头NVR元数据的数据库。有一个26字节的recording每1分钟的视频片段行。(如果您很好奇,设计文档正在进行中here。)我的设计限制是8个摄像头,1年(约400万行,每个摄像头50万个)。我伪造了一些数据来测试性能。这个查询比我预期的要慢:selectrecording.start_time_90k,recording.duration_90k,recording.video_samples,recording.sample_file_bytes,recording.video_sample_entry_idfromrecordingwherecamera_i