MySQL Optimizer team comments on TPC-H Results

Yesterday I had a chance to speak to Igor – head of MySQL optimizer team and Timur – both of them expressed concern with TPC-H run results I posted and notes about little gains in MySQL 6.0.

Do not get this post wrong. I’m not saying MySQL 6.0 SubQuery optimizations are non existent or priorities were wrong, what I’m saying is just they do not seems to be apply to most of TPC-H Queries. I personally (before doing what exactly queries are part of TPC-H) was expecting to see gains in TPC-H and I think this is what other users would expect as well because this is well known set of complex queries which use SubQueries.

So what is the reason ? Why TPC-H queries are not targeted ?

The reason is MySQL Optimizer Team did not have the goal of optimizing TPC-H queries or queries from any other benchmarks, rather they look at the queries which MySQL Users have problem with and first target the most common issues. I think this is a great approach to pick what needs to be done first.

Another reason is “Derived Tables” AKA “Subselects in FROM Clause” are not optimized yet even though some optimizations may make it into final MySQL 6.0 release.

Summary: Poor MySQL 6.0 performance on TPC-H queries does NOT mean to quantify MySQL Optimizer Team work in any way:)

Share this post

Comments (5)

  • Tácio Castanhede

    Bom dia,

    Estou tentando realizar o make do TPC-h, para gerar as bases e dá o seguinte erro:

    chmod 755
    ./ 2 7 0
    gcc -O -DDBNAME=\”dss\” -DICL -DMYSQL -DTPCH -c -o build.o build.c
    In file included from dss.h:81,
    from build.c:50:
    config.h:213:2: error: #error Support for a 64-bit datatype is required in this release
    In file included from build.c:50:
    dss.h:178: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dss.h:189: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dss.h:221: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘set_state’
    dss.h:224: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘NextRand’
    dss.h:225: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UnifInt’
    dss.h:226: error: expected ‘)’ before ‘*’ token
    In file included from build.c:51:
    dsstypes.h:43: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:55: error: expected ‘)’ before ‘n_cust’
    dsstypes.h:61: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:82: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:97: error: expected ‘)’ before ‘index’
    dsstypes.h:100: error: expected ‘)’ before ‘index’
    dsstypes.h:104: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:114: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:130: error: expected ‘)’ before ‘index’
    dsstypes.h:136: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:147: error: expected ‘)’ before ‘index’
    dsstypes.h:153: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:162: error: expected ‘)’ before ‘h’
    dsstypes.h:169: error: expected specifier-qualifier-list before ‘DSS_HUGE’
    dsstypes.h:177: error: expected ‘)’ before ‘i’
    dsstypes.h:180: error: expected ‘)’ before ‘i’
    In file included from build.c:56:
    rng64.h:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘AdvanceRand64’
    rng64.h:22: error: expected ‘)’ before ‘*’ token
    rng64.h:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘NextRand64’
    build.c:71: error: expected ‘)’ before ‘ind’
    build.c:74: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpb_routine’
    build.c:86: error: expected ‘)’ before ‘ind’
    build.c:108: error: expected ‘)’ before ‘n_cust’
    build.c:139: error: expected ‘)’ before ‘i’
    build.c:156: error: expected ‘)’ before ‘index’
    build.c:279: error: expected ‘)’ before ‘index’
    build.c:322: error: expected ‘)’ before ‘index’
    build.c:396: error: expected ‘)’ before ‘index’
    build.c:418: error: expected ‘)’ before ‘index’
    build.c:429: error: expected ‘)’ before ‘index’
    make: ** [build.o] Erro 1

    O que pode ser?


    April 28, 2008 at 7:24 am
  • Jon

    Its the most entertaining game that i have played and all should try this game for the enjoyment

    March 5, 2019 at 4:15 am
  • Michael

    Thanks for this information …….

    January 9, 2020 at 3:11 am
  • David

    Poor MySQL 6.0 performance on TPC-H queries does NOT mean to quantify MySQL Optimizer Team work in any way:)

    January 9, 2020 at 3:13 am
  • Crist

    How it the MySQL 7.0 performance ? Same like MySQL 6.0 or different ?

    April 22, 2020 at 5:58 am

Comments are closed.

Use Percona's Technical Forum to ask any follow-up questions on this blog topic.