您好,匿名用户
随意问技术百科期待您的加入

sqlalchemy操作sqlite在高并发的时候容易锁死有什么好的解决办法嘛?

0 投票

目前使用flask+sqlite做的一个小型应用。在访问量高的时候出现502,查日志发现大量的“database is locked”

用户头像 提问 2013年 9月10日 @ Viktor 上等兵 (290 威望)
分享到:

1个回答

0 投票

首先检查一下你的SQL语句是不是用上了该用的索引。

如果没有,尽量优化它。

如果用了还不行,说明sqlite本身性能已经不能满足要求了。

如果只是读被锁的话,可以通过添加一个缓存层(如memcached)来解决。

如果是写被锁的话(sqlite的并发写性能是挺弱的),在对数据一致性要求不高的场合,可以考虑将写操作缓存,多个写操作(再加上个时间限制)合并,以提高数据库的吞吐量(许多基于sqlite的论坛什么的就有这种机制)。

如果还是不行,你就只能考虑换其他性能更高的数据库产品了。

用户头像 回复 2013年 9月10日 @ Tryndamere 上等兵 (325 威望)
提一个问题:

相关问题

+2 投票
1 回复 264 阅读
用户头像 提问 2012年 12月6日 @ Oracle 上等兵 (238 威望)
0 投票
0 回复 36 阅读
0 投票
1 回复 46 阅读
用户头像 提问 2012年 12月1日 @ Swain 上等兵 (232 威望)
0 投票
1 回复 49 阅读
0 投票
1 回复 46 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...