使用 PRAGMA 命令提高 kotlin SQLite 的性能
Increase performance of kotlin SQLite using PRAGMA commands
我尝试使用 jetbrains.exposed 库在 Kotlin 中创建并连接到 SQLite 数据库。
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.transactions.TransactionManager
import org.jetbrains.exposed.sql.transactions.transaction
private fun provideSqliteDatabase(databaseConfig: DatabaseConfig?): Database {
val path = databaseConfig?.url ?: "./"
File(path).mkdirs()
logger.info("SQLite Database path: $path/database.db")
return Database.connect("jdbc:sqlite:$path/database.db", "org.sqlite.JDBC")
.apply {
TransactionManager.manager.defaultIsolationLevel =
Connection.TRANSACTION_READ_UNCOMMITTED
provideTables()
}
}
我尝试使用一些 PRAGMA SQLite 命令来提高我的数据库的性能。
如何设置这些配置,例如 set JOURNAL_MODE:
PRAGMA JOURNAL_MODE='OFF';
要点:我 运行 我的程序在 Ubuntu 20.04.
我相信在这种情况下你必须写成简单的 SQL:
transaction {
exec("PRAGMA JOURNAL_MODE='OFF'", explicitStatementType = StatementType.EXEC)
}
您可以尝试将您的连接 url 扩展到 journal_mode=OFF
。
如果你检查 SQLite driver tests 你会发现它会自动解析和执行这些参数。
我尝试使用 jetbrains.exposed 库在 Kotlin 中创建并连接到 SQLite 数据库。
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.transactions.TransactionManager
import org.jetbrains.exposed.sql.transactions.transaction
private fun provideSqliteDatabase(databaseConfig: DatabaseConfig?): Database {
val path = databaseConfig?.url ?: "./"
File(path).mkdirs()
logger.info("SQLite Database path: $path/database.db")
return Database.connect("jdbc:sqlite:$path/database.db", "org.sqlite.JDBC")
.apply {
TransactionManager.manager.defaultIsolationLevel =
Connection.TRANSACTION_READ_UNCOMMITTED
provideTables()
}
}
我尝试使用一些 PRAGMA SQLite 命令来提高我的数据库的性能。 如何设置这些配置,例如 set JOURNAL_MODE:
PRAGMA JOURNAL_MODE='OFF';
要点:我 运行 我的程序在 Ubuntu 20.04.
我相信在这种情况下你必须写成简单的 SQL:
transaction {
exec("PRAGMA JOURNAL_MODE='OFF'", explicitStatementType = StatementType.EXEC)
}
您可以尝试将您的连接 url 扩展到 journal_mode=OFF
。
如果你检查 SQLite driver tests 你会发现它会自动解析和执行这些参数。