mysql MySQL 标准库

mysql MySQL 标准库

mysql MySQL 标准库

功能

mysql(dsn) 创建 MySQL 查询构建器,支持 SQL 设置、普通绑定、批量绑定、批量执行、查询多行、查询单行、写入执行和 SQL 预览。

API 列表

API说明
mysql.query设置当前 MySQL 对象的 SQL 文本。
mysql.bind追加一组普通绑定参数。
mysql.binds追加多行批量绑定参数。
mysql.batch设置批量 exec 的每批行数。
mysql.workers设置批量 exec 的并发工作数。
mysql.begin开启一个 MySQL 事务并返回事务句柄。
MysqlTransaction事务句柄,支持事务内 query/bind/all/one/exec/commit/rollback/close。
mysql.all执行查询并返回多行结果。
mysql.one执行查询并返回单行结果。
mysql.exec执行不需要返回结果集的 SQL。普通绑定执行一次;binds 批量配置会按 batch/workers 执行。
mysql.sql返回当前 SQL 的调试文本。

示例

注意事项

  • all/one/exec 会复用进程级 I/O runtime 并同步等待数据库结果。
  • 默认启用 MySQL 普通查询连接池,按 DSN 分组复用;池状态可通过 BT.stats().mysql 查看,统计不会泄露 DSN 密码。
  • begin 会开启一个事务并独占一条连接;事务完成后必须显式调用 commit、rollback 或 close。
  • binds().exec() 批量执行仍按本次 workers() 创建临时连接池,避免全局池改变批量并发边界。
  • all/one 会拒绝 binds、batch、workers,避免批量配置被静默误用。

MySQL 普通查询连接池默认配置:

环境变量默认值说明
BT_MYSQL_POOLtrue是否启用普通查询全局连接池。
BT_MYSQL_POOL_LIMIT16,最大 256最多保留的 DSN 分组数量。
BT_MYSQL_POOL_MIN_CONNECTIONS0每个连接池最小连接数。
BT_MYSQL_POOL_MAX_CONNECTIONS8,最大 1024每个连接池最大连接数。
BT_MYSQL_POOL_IDLE_TTL_MS300000连接池空闲保留时间,单位毫秒;0 表示不按空闲时间淘汰。
BT_MYSQL_CONNECT_TIMEOUT_MS5000获取连接的超时时间,单位毫秒。
BT_MYSQL_QUERY_TIMEOUT_MS30000单次 SQL 调用同步等待超时时间,单位毫秒。
BT_MYSQL_SLOW_MS0慢 MySQL 调用日志阈值,单位毫秒;0 表示关闭。