问题 优化sqlite数据库的技巧超过了一大堆数据? [关闭]


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

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


3488
2017-10-22 08:15


起源



答案:


你读过了吗? SQLite优化常见问题 (几岁,但似乎仍然有用)?

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


4
2017-10-22 14:36



我没有使用SQLite,但这似乎是一个很好的文档来开始。 - Jeff


答案:


你读过了吗? SQLite优化常见问题 (几岁,但似乎仍然有用)?

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


4
2017-10-22 14:36



我没有使用SQLite,但这似乎是一个很好的文档来开始。 - Jeff


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

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


3
2017-11-04 12:54





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

  1. 优先在主索引序列中排序插入的数据
  2. 使用准备好的陈述(doh)
  3. 删除任何索引
  4. 使用事务包装大量插入数据(比如命中中的10,000条记录)
  5. 添加索引

还记得sqlite还不支持where子句中的or运算符。 您可以通过对where子句进行demogranizing来调整事物来使用ands。


2
2017-12-23 00:31



是的,你有第四点的参考或快速样本(与交易批量插入数据)? - Jhonny D. Cano -Leftware-


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


1
2017-10-22 15:55