11

我正在使用一个大于平均水平的 sqlite 数据库(用于 Windows 和 linux),并希望最大限度地提高我从中获得的性能。该数据库将与 sqlite gui 一起安装在商品硬件上。我交付给的用户精通 sql,但不太可能进行自己的优化(创建索引、设置 pragma 等),因此我渴望获得尽可能多的开箱即用性能(以确保最大限度地使用数据)。

一个问题 Windows 似乎比 Linux 更能限制查询的执行,另一个问题是我不太熟悉 sqlite 的索引方法(与 postgres 等其他数据库相比)。

4

4 回答 4

4

您是否阅读过SQLite 优化常见问题解答(几年前,但似乎仍然有用)?

我不认为 1gb 特别大,即使对于 SQLite 也是如此。它当然可以稳定地处理更大的数据库。

于 2008-10-22T14:36:43.513 回答
3

更新 - 我们在导入时对数据进行更智能的排序、积极的索引(在此过程中将 db 文件的大小增加一倍以上)、调整 Windows 中的设置以使 XP 的行为更像服务器,这方面取得了最大的成功而不是桌面,更改连接顺序(您不能仅仅依赖优化器)并通过创建性能测试套件(只是用于运行查询和进行测量的工具)来衡量您的进度。

体验很有趣,最终用户很高兴并且能够使用数据。

于 2008-11-04T12:54:23.467 回答
2

如果您正在导入大量数据,我发现最有效的方法是

  1. 最好按主索引顺序对插入的数据进行排序
  2. 使用准备好的语句 (doh)
  3. 删除任何索引
  4. 批量插入包含事务的数据(例如一次命中 10,000 条记录)
  5. 重新添加索引

另请记住,sqlite 尚不支持 where 子句中的 or 运算符。您可以通过将 where 子句贬低以使用 ands 来调整事情。

于 2008-12-23T00:31:13.517 回答
1

您应该每天晚上查看“计划任务”和“优化表”的脚本,甚至可能重新创建索引。定期这样做可以为您节省大量时间和体力劳动。

于 2008-10-22T15:55:01.497 回答