背景
DistSQL 是 ShardingSphere 提供的管理语言,能够帮助用户减少对配置文件的编辑操作,并且通过 DistSQL 管理资源和规则,所有的变更都是实时生效的,无需重启 Proxy。
提问
在使用 ShardingSphere-Proxy 的过程中,若需创建逻辑数据库,要输入 CREATE DATABASE
语句。
现在用户有一个压测场景,需要创建 1000 个逻辑数据库,有哪些办法可以提高效率呢?
回答
办法有多种:
1. 通过 JDBC 接口编程,在程序中批量执行 SQL 命令:
/**
* 省略模板代码
*/
public void createDatabase() throws SQLException {
try (Statement statement = connection.createStatement()) {
for(int i=0; i< 1000; i++){
String sql = String.format("CREATE DATABASE IF NOT EXISTS test_db_%s", i);
statement.executeUpdate(sql);
}
}
}
2. 使用 Bash 脚本,通过 MySQL 终端批量执行 SQL:
前提: 需要本机能够执行 mysql 命令
- 创建脚本文件
createDB.sh
#!/bin/bash
PROXY="mysql -uroot -proot -h127.0.0.1 -P3307"
for i in {0..1000}
do
${PROXY} -e "CREATE DATABASE IF NOT EXISTS test_db_${i};"
done
- 执行创建好的
createDB.sh
文件
sh ./createDB.sh
END
以上就是本次分享的实用技巧,欢迎大家参与讨论,提出更多更好的 idea,感谢阅读!
转载请注明来自 SphereEx 中文论坛 https://community.sphere-ex.com/