Skip to content

Commit a409b71

Browse files
committed
[misc] benchmark improvement to use same server charset.
mysql/mysql2 use fixed UTF8_GENERAL_CI, in place of default utf8mb4 charset. This is now corrected.
1 parent 8d5271b commit a409b71

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

benchmarks/common-bench.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ try {
1717
} catch (e) {}
1818

1919
//************************************************
20-
// COMMON CONFIGURATION
20+
// COMMON CONFIGURATION.
21+
// Mysql and Mysql2 doesn't use server collation, but fixed collation UTF8_GENERAL_CI.
22+
// setting it to default utf8mb4 collation, to be fair
2123
//************************************************
2224
const conf = require('../test/conf');
2325
const logUtility = require('./log-utility');
2426
const config = Object.assign({}, conf.baseConfig, { trace: false });
25-
console.log(config);
27+
28+
let configWithCharset = null;
2629
const minimumSamples = process.env.PERF_SAMPLES ? parseInt(process.env.PERF_SAMPLES) : 200;
2730

2831
//************************************************
@@ -90,22 +93,28 @@ const createBenchSuite = async (bench) => {
9093
//************************************************
9194
const loadsources = async (requiresPool, requireExecute, mariadbOnly) => {
9295
const sources = {};
96+
sources['mariadb'] = await mariadb.createConnection(Object.assign({}, config));
97+
if (!configWithCharset && sources['mariadb'].info.collation) {
98+
const collation = sources['mariadb'].info.collation.name;
99+
configWithCharset = Object.assign({}, conf.baseConfig, { trace: false, charset: collation });
100+
console.log(configWithCharset);
101+
}
102+
93103
if (requiresPool == undefined || requiresPool === false) {
94104
if (mysql) {
95105
if (!mariadbOnly && (requireExecute == undefined || requireExecute === false)) {
96-
sources['mysql'] = await mysql.createConnection(Object.assign({}, config));
106+
sources['mysql'] = await mysql.createConnection(Object.assign({}, configWithCharset));
97107
}
98108
}
99109
if (mysql2 && !mariadbOnly) {
100-
sources['mysql2'] = await mysql2.createConnection(Object.assign({}, config));
110+
sources['mysql2'] = await mysql2.createConnection(Object.assign({}, configWithCharset));
101111
}
102-
sources['mariadb'] = await mariadb.createConnection(Object.assign({}, config));
103112
} else {
104113
if (!mariadbOnly && mysql) {
105-
sources['mysql'] = await mysql.createPool(Object.assign({ connectionLimit: 1 }, config));
114+
sources['mysql'] = await mysql.createPool(Object.assign({ connectionLimit: 1 }, configWithCharset));
106115
}
107116
if (!mariadbOnly && mysql2) {
108-
sources['mysql2'] = mysql2.createPool(Object.assign({ connectionLimit: 1 }, config));
117+
sources['mysql2'] = mysql2.createPool(Object.assign({ connectionLimit: 1 }, configWithCharset));
109118
}
110119
}
111120

benchmarks/log-utility.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
// SPDX-License-Identifier: LGPL-2.1-or-later
2+
// Copyright (c) 2015-2023 MariaDB Corporation Ab
3+
14
'use strict';
25

3-
const pjson = require('../package-lock.json');
46
const chalk = require('chalk');
57
const defaultImgJson = {
68
type: 'horizontalBar',

0 commit comments

Comments
 (0)