EmergencyEMERGENCY? Get 24/7 Help Now!

MySQL Optimizer team comments on TPC-H Results

 | April 14, 2008 | 


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:)

Peter Zaitsev

Peter managed the High Performance Group within MySQL until 2006, when he founded Percona. Peter has a Master's Degree in Computer Science and is an expert in database kernels, computer hardware, and application scaling.

One Comment

  • Bom dia,

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

    chmod 755 update_release.sh
    ./update_release.sh 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?


Leave a Reply


Percona’s widely read Percona Data Performance blog highlights our expertise in enterprise-class software, support, consulting and managed services solutions for both MySQL® and MongoDB® across traditional and cloud-based platforms. The decades of experience represented by our consultants is found daily in numerous and relevant blog posts.

Besides specific database help, the blog also provides notices on upcoming events and webinars.
Want to get weekly updates listing the latest blog posts? Subscribe to our blog now! Submit your email address below and we’ll send you an update every Friday at 1pm ET.

No, thank you. Please do not ask me again.