← Back to team overview

maria-discuss team mailing list archive

Re: MariaDB 10.5.18: Performance-Problems with CONCAT

 

Hi, Johannes,

Try the next release (expected in about a month) where
https://jira.mariadb.org/browse/MDEV-29988 is fixed.

Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx

On Jan 04, Johannes Ody wrote:
> I'm german. Please excuse my bad english.
> MariaDB version 10.5.18 is much slower than version 10.5.16 in 
> string-manipulation (CONCAT).
> In version 10.5.16 my code in the bottom needs for 800 records in 
> tmp_tartikel_live 1-2 seconds.
> In version 10.5.18 my code needs for 800 records in tmp_tartikel_live 
> 20-30 seconds.
> In version 10.5.16 my code needs for 26000 records in tmp_tartikel_live 
> 5-6 minutes. It is ok.
> In version 10.5.18 my code needs for 26000 records in tmp_tartikel_live 
> more than 2 hours and
> was terminating by the system and was not ready.
> The execution-time glows much more than linear.
> The calling script is internal for maintenance-work at night.
> The purpose of this code is to build our search-tables in MySQL 
> (concordance).
> The code must work for strings with special characters in the 
> coding-systems html (è), ansi and utf-8.
> In german and france we have the special characters:
>      ß
>      ü
>      ö
>      äàá
>      èé
>      and so on.
> 
> I have found other users with performance-problems in MariaDB version 
> 10.5.18, and they also use CONCAT:
>   https://dba.stackexchange.com/questions/284073/query-performance-drop-after-upgrade-to-mariadb-10-5-group-concat-join
> 
> My code is the following:
>      /*#JODY_20221010
>      Die Datenbank muss fuer diesen Code auf 
> Kollektion=latin1_swedish_ci eingestellt sein.
>          ALTER DATABASE d03a5b1c COLLATE latin1_swedish_ci;
>      Das CHARACTER SET scheint nicht so wichtig zu sein.
>      */
> 
>      /*
>      #JODY_20211228 (ACHTUNG): Diese Datei muss ASCII-Codiert sein 
> (nicht UTF8)
>          Funktion zum Loeschen von HTML-Tags. Kann nur vom browser aus 
> installiert werden.
>      * /
>      DROP PROCEDURE IF EXISTS mysql_log;*/
>      DROP FUNCTION IF EXISTS mysql_striptags;
>      DROP FUNCTION IF EXISTS mysql_replace_utf8_sonderzeichen;
>      DROP FUNCTION IF EXISTS mysql_replace_single_char;
>      DROP FUNCTION IF EXISTS mysql_replace_char;
>      DROP FUNCTION IF EXISTS mysql_replace_umlaute;
>      /*DROP FUNCTION IF EXISTS mysql_delete_fuellwoerter;*/
> 
>      DELIMITER $$
> 
>      /*CREATE PROCEDURE mysql_log(strText VARCHAR(255))
>      BEGIN
>          INSERT INTO debugout(cText) VALUES (strText);
>      END$$*/
> 
>      CREATE FUNCTION mysql_striptags(strParam TEXT)
>      RETURNS TEXT
>      DETERMINISTIC
>      BEGIN
>          DECLARE str TEXT;


References