我正在使用比平均更大的sqlite数据库(用于Windows和Linux)并且我希望最大限度地提高我的性能。数据库将与sqlite gui一起安装在商品硬件上。我提供的用户是精通sql但不太可能进行自己的优化(创建索引,设置pragma等)所以我渴望获得尽可能多的开箱即用性能(以确保最大限度地使用数据)。
一个问题Windows似乎比Linux更节省了查询的执行,另一个问题是我不太熟悉sqlite的索引方法(与postgres等其他数据库相比)。
答案 0 :(得分:4)
您是否阅读了SQLite Optimization FAQ(几年前,但似乎仍然有用)?
我不认为1gb特别大,即使对于SQLite也是如此。它当然可以稳定地处理更大的数据库。
答案 1 :(得分:3)
更新 - 我们在导入时更加智能地对数据进行排序,积极索引(在此过程中将db文件的大小增加一倍以上),在Windows中调整设置以使XP表现更多比服务器而不是桌面,更改连接顺序(您不能单独依赖优化器)以及通过创建性能测试套件来衡量您的进度(仅用于运行查询和进行测量的工具。
体验很有趣,最终用户很高兴并且能够处理数据。
答案 2 :(得分:2)
如果您正在进行大量数据导入,我发现最有效的方法是
还要记住,sqlite还不支持where子句中的or运算符。 您可以通过将where子句进行人格化以使用ands来调整内容。
答案 3 :(得分:1)
您应该每晚查看“计划任务”和“优化表”的脚本,甚至可以重新创建索引。定期这样做可以节省大量的时间和手工劳动。