# mysql.exec_many

## 功能
并发执行同一条 SQL 的多组绑定参数，适合批量写入和数据库压力测试。

## 语法
```bt
mysql(dsn).query(sql).exec_many(params, concurrency)
```

## 参数
- `params`: Array<Array>，必填
  二维数组，每一项是一组绑定参数，顺序对应 SQL 中的 `?` 占位符。
- `concurrency`: Int，选填
  并发数量，默认 `10`，有效范围 `1` 到 `4096`。

## 返回值
`Object`：包含 `total`、`rows_affected`、`last_insert_id`、`concurrency`。

## 代码示例
```bt
db = mysql('mysql://user:p%40ss@127.0.0.1/test')

params = []
i = 0
while i < 10000 {
    params.push(['测试' + i, true, date().format('%Y-%m-%d %H:%M:%S')])
    i += 1
}

ret = db.query('insert into user(name, sex, create_time) values (?, ?, ?)')
    .exec_many(params, 100)
echo(ret)
```

## 注意事项
- `exec_many()` 使用连接池限制并发，不会一次性打开超过 `concurrency` 的连接。
- `concurrency` 控制 MySQL 连接池大小，不等于运行器线程数；例如传 `1000` 会尝试维持最多 1000 条 MySQL 连接，但不会创建 1000 个系统线程。
- 每一行都会独立执行一次 SQL；如果需要单条 SQL 多值插入，可自行拼接 `insert ... values (...), (...)`。
- 并发压测会明显增加数据库负载，请先确认测试库可被清空或写入。
