Skip to content

MySQL performance

Utilita mysqlslap

# Testovani s automaticky generovanymi querry
mysqlslap --user=sysadmin --password --host=localhost  --auto-generate-sql --verbose



# testovani s realnymi query, napriklad ze slow query logu
mysqlslap --user=sysadmin --password --host=localhost  \
  --concurrency=20 \
  --number-of-queries=1000 \
  --iterations=10 \
  --create-schema=employees \
  --query="sloq_query.sql" \
  --delimiter=";" \
  --verbose --debug-info

Prakticky priklad simulace realnych dotazu

  1. Ziskani realnych dotazu z produkce

    # zapnu ukladani query do logu
    SET GLOBAL general_log=1, general_log_file='capture_queries.log';
    
    
    # kdyz mam nasbirano dost zase to vypnu
    SET GLOBAL general_log=0;
    

  2. Zkopiruju si data na testovaci stroj (pouziji klasicky mysqldump, nebo data ze zalohy)

  3. Soubor se ziskanymi dotazy je potreba projit scriptem, nebo rucne a udelat z nej soubor obsahujici dotazy

  4. Pustim benchmark napriklad takto

    mysqlslap --user=sysadmin --password --host=localhost \
      --concurrency=10 \
      --iterations=10 \
      --create-schema=jmeno_db \
      --query="capture_queries.sql" \
      --verbose
    

Originalni zdroj je https://www.digitalocean.com/community/tutorials/how-to-measure-mysql-query-performance-with-mysqlslap