【发布时间】:2015-10-12 04:41:15
【问题描述】:
无论我使用 PRAGMA 还是预处理器宏,SQLite3 是否存在性能差异?
就我而言,我想知道PRAGMA foreign_keys = ON 和#define SQLITE_DEFAULT_FOREIGN_KEYS=1 在行为或性能方面是否有任何区别。
我倾向于使用 pragma 更灵活,但我想知道是否有一些性能损失。
附加问题:编译指示适用于连接的数据库是否正确。如果多个进程/线程访问同一个数据库并设置编译指示,是否会出现竞争条件?我假设pragma信息存储在硬盘的sqlite3文件中。
【问题讨论】:
-
我会选择编译指示;在您创建架构时设置它们,其他开发人员不必查看您的构建系统来弄清楚为什么编译指示具有非默认值。如果您愿意,它还允许您使用系统的 sqlite 库。
标签: c++ performance sqlite c-preprocessor pragma