优化sqlite数据库的技巧有多种数据?

时间:2008-10-22 08:15:08

标签: windows linux optimization sqlite configuration

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

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

4 个答案:

答案 0 :(得分:4)

您是否阅读了SQLite Optimization FAQ(几年前,但似乎仍然有用)?

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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

  1. 优先在主索引序列中订购插入的数据
  2. 使用预备陈述(doh)
  3. 删除所有索引
  4. 使用事务处理包装的数据(比如命中的10,000条记录)
  5. 添加索引
  6. 还要记住,sqlite还不支持where子句中的or运算符。 您可以通过将where子句进行人格化以使用ands来调整内容。

答案 3 :(得分:1)

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