与原始 SQL 语句相比,SQLite 准备好的语句似乎是执行查询的好方法。我只是想知道它们应该保留多久。
静态编译该语句是否安全,即仅编译一次并在许多查询中继续使用相同的语句? 如果这不是线程安全的,那么在本地线程上怎么办? 相反,如果您只使用一次准备好的语句,它们仍然是首选吗?
最佳答案
准备好的语句的优点是:
随着执行计划被缓存,性能会更好。
这是一种针对 SQL 注入(inject)进行编码的好方法,因为它会转义输入 值(value)观。
当涉及到没有未绑定(bind)变量的语句时,数据库 可以自由地进行最大程度的优化。单独的查询将是 速度更快,但缺点是你需要做数据库 一直在编译,这比编译的好处更糟糕 更快的查询。
对于 Java 编程,请查看 Statement and PreparedStatement
关于java - Android SQLite 预准备语句生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529956/