帖子中由于插入字段过长,删减一部分SQL语句,使其它读者方便阅读
------
插入语句如下
insert.sql
(15.25 MB, 下载次数: 2)
建表语句如下
createtable.sql
(1.08 KB, 下载次数: 1)
GreatSQL 相关信息
- greatsql> show variables like '%version%';
- +--------------------------------------------------+--------------------------------------------+
- | Variable_name | Value |
- +--------------------------------------------------+--------------------------------------------+
- | admin_tls_version | TLSv1.2,TLSv1.3 |
- | gdb_sqld_version | 8.0.32.5 |
- | group_replication_allow_local_lower_version_join | OFF |
- | group_replication_recovery_tls_version | TLSv1.2,TLSv1.3 |
- | immediate_server_version | 999999 |
- | innodb_version | 8.0.32-8.0.32 |
- | original_server_version | 999999 |
- | protocol_version | 10 |
- | replica_type_conversions | |
- | slave_type_conversions | |
- | tls_version | TLSv1.2,TLSv1.3 |
- | version | 8.0.32-25 |
- | version_comment | GreatSQL, Release 25, Revision 79f57097e3f |
- | version_compile_machine | x86_64 |
- | version_compile_os | Linux |
- | version_compile_zlib | 1.2.13 |
- | version_suffix | |
- +--------------------------------------------------+--------------------------------------------+
- 17 rows in set (0.00 sec)
复制代码 使用 GreatSQL 为 8.0.32-25 版本
配置文件(my.cnf)如下,参考安装手册中提供的 my.cnf 此处没做修改
- Ubuntu系统中安装GreatSQL | GreatSQL用户手册
或推荐的 my.cnf 模板
- my.cnf参考模板 | GreatSQL用户手册
注意不要用全默认值,可能会导致 GreatSQL 性能较差,例如ibp只有128M等!若拿定不了参数值设置,可使用叶老师的小工具
- 老叶出品,方便可靠的MySQL my.cnf配置文件生成工具 (imysql.com)
单独运行
第一次
- greatsql> source /usr/local/insert.sql;
- Query OK, 61 rows affected, 10 warnings (0.23 sec)
- Records: 61 Duplicates: 0 Warnings: 10
复制代码 第二次
- greatsql> source /usr/local/insert.sql;
- Query OK, 61 rows affected, 10 warnings (0.21 sec)
- Records: 61 Duplicates: 0 Warnings: 10
复制代码 第三次
- greatsql> source /usr/local/insert.sql;
- Query OK, 61 rows affected, 10 warnings (0.19 sec)
- Records: 61 Duplicates: 0 Warnings: 10
复制代码 脚本运行5次
- #!/bin/bash
- for i in {1..5}
- do
- echo "Execution $i:"
- # 使用 `time` 命令来记录执行时间
- { time ./GreatSQL-8.0.32-25-Linux-glibc2.28-x86_64/bin/mysql -S /data/greatsql/mysql.sock -uroot -Dtest < /usr/local/insert.sql; } 2>&1
- echo "---------------------------------------"
- done
复制代码 结果如下
- root@hyzhang:/usr/local# ./execute.sh
- Execution 1:
- real 0m0.303s
- user 0m0.102s
- sys 0m0.017s
- ---------------------------------------
- Execution 2:
- real 0m0.293s
- user 0m0.100s
- sys 0m0.013s
- ---------------------------------------
- Execution 3:
- real 0m0.315s
- user 0m0.095s
- sys 0m0.017s
- ---------------------------------------
- Execution 4:
- real 0m0.317s
- user 0m0.125s
- sys 0m0.009s
- ---------------------------------------
- Execution 5:
- real 0m0.291s
- user 0m0.097s
- sys 0m0.012s
- ---------------------------------------
复制代码 结论如下
同样的 Insert 语句在 GreatSQL 数据库中并不会出现性能迟缓的情况。初步推断,此问题的成因在于 my.cnf 的配置有误。诸如 innodb_buffer_pool_size、innodb_log_buffer_size、tmp_table_size、max_heap_table_size、innodb_write_io_threads 以及 innodb_read_io_threads 等参数,倘若采用默认值,或许会对性能产生不利影响。
|