From c5e0825c6f895428299d3d92fcdab76f1653922c Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Fri, 15 Jun 2018 15:26:10 +0200 Subject: [PATCH] Database: reduce varchar cols to fit MyISAM indexes MyISAM indexes are limited to 1000 bytes per index. Recently, Linux distros (e.g. Debian 9) started to default MariaDB installations to utf8mb4, which can use up to 4 bytes per character. Hence, two varchar columns indexed in a single key have a total maximum length of 250. Instead, we use some lower, round numbers. Change-Id: I4b53bc217912bc7070102a0af4938763e61b041d --- src/core/util/Database.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/util/Database.cc b/src/core/util/Database.cc index 7910f9f6..9691f759 100644 --- a/src/core/util/Database.cc +++ b/src/core/util/Database.cc @@ -145,8 +145,8 @@ bool Database::create_variants_table() { if (!query("CREATE TABLE IF NOT EXISTS variant (" " id int(11) NOT NULL AUTO_INCREMENT," - " variant varchar(255) NOT NULL," - " benchmark varchar(255) NOT NULL," + " variant varchar(100) NOT NULL," + " benchmark varchar(100) NOT NULL," " PRIMARY KEY (id)," "UNIQUE KEY variant (variant,benchmark)) ENGINE=MyISAM")) { return false; @@ -244,7 +244,7 @@ int Database::get_fspmethod_id(const std::string &method) { if (!query("CREATE TABLE IF NOT EXISTS fspmethod (" " id int(11) NOT NULL AUTO_INCREMENT," - " method varchar(255) NOT NULL," + " method varchar(100) NOT NULL," " PRIMARY KEY (id), UNIQUE KEY method (method)) ENGINE=MyISAM")) { return 0; }