SQLite3 数据库查询优化
Posted
技术标签:
【中文标题】SQLite3 数据库查询优化【英文标题】:SQLite3 Database Query Optimization 【发布时间】:2012-04-30 17:31:08 【问题描述】:我想要一个组合 4 个表格的结果。以前我使用 4 个不同的查询来提高性能,从加入表和从单个表查询开始。但是性能并没有提高。
我后来了解到,SQLite 将 join 语句转换为“where 子句”,我可以直接使用“Where”子句代替 join,这样可以节省一些 CPU 时间。
但是“Where”子句的问题是,如果四个条件中的一个条件失败,则结果集为空。如果一个条件失败,我想要一个填充了其余列(匹配其他条件)的表,而不是一个空表。有没有办法做到这一点?谢谢!
【问题讨论】:
你能发布SQL语句,也许还有四个表的架构? 【参考方案1】:您是否考虑过使用 LEFT OUTER JOIN ?
例如
SELECT Customers.AcctNumber, Customers.Custname, catalogsales.InvoiceNo
FROM Customers
LEFT OUTER JOIN catalogsales ON Customers.Acctnumber = catalogsales.AcctNumber
在本例中,如果 "catalogsales" 中没有任何匹配的行,那么它仍然会返回 "left" 表中的数据,在本例中为 "Customers"
没有示例 SQL,很难知道您尝试了什么。
【讨论】:
以上是关于SQLite3 数据库查询优化的主要内容,如果未能解决你的问题,请参考以下文章