Download - Shinier Dolphin

Transcript

A Shinier DolphinBaron Schwartz

Me

✤ Cofounder of @VividCortex

✤ Author of High Performance MySQL

✤ I love hearing from people just like you:

✤ @xaprb on Twitter

[email protected]

✤ http://www.linkedin.com/in/xaprb

Optimization, Backups, Replication, and more

Baron Schwartz, Peter Zaitsev &

Vadim Tkachenko

High PerformanceMySQL

3rd Edition

Covers Version 5.5

VividCortex

✤ What do you do with a query that will run for 7000 years?

What’s New with MySQL?

What’s New with MySQL?

What’s New with MySQL?

What’s New with MySQL?

What’s New with MySQL?

Unavoidable Politics

Major Community Developments

✤ Replication/Clustering: Galera, Continuent

✤ Storage: TokuDB, Akiban

✤ Sharding: Clustrix, ScaleArc, ScaleBase, ParElastic

✤ Backup: Percona XtraBackup

✤ Services & Support: Percona, SkySQL

✤ Tools: MySQL Workbench, MySQL Utilities, Percona Toolkit

Don’t Be A Zombie

MySQL 5.1 is officially undead now. Don’t use it.

Obligatory Biblical Quote

When the wicked, even mine enemies and my foes, cameupon me to eat up my flesh, they stumbled and fell.

- Psalm 27:2

MySQL 5.5

✤ MySQL 5.5 is old news now.

✤ Thread pooling, auditing, pluggable authentication, multicore performance, instrumentation, InnoDB, InnoDB, InnoDB, semisync replication, partitioning, metadata locking, etc etc.

MySQL 5.6

✤ I expect MySQL 5.6 to be GA within months

✤ There’s a very long list of features and changes in 5.6

✤ It is going to be a huge step forward

MySQL 5.6 Overview

✤ Faster queries

✤ Better scalability on multicore hardware

✤ More reliable, efficient, and user-friendly replication

✤ Instrumentation and tracing to measure behavior and performance

✤ Easier and more reliable failover for high availability

Query Optimizations

Query Optimizations

✤ Subquery and “derived table” improvements

✤ Improvements for SELECT .. ORDER BY .. LIMIT

✤ Reductions to random I/O (MRR, BKA)

✤ Index condition pushdown

✤ Removal of “leftmost prefix” limitation

✤ EXPLAIN for UPDATE etc; JSON EXPLAIN; optimizer trace

Multi-Range Read

http://goo.gl/g4qFK

Batched-Key Access

http://goo.gl/GqBWc

Index Condition Pushdown

http://goo.gl/iyHXG

Data Types

Data Types

✤ Microsecond precision for timestamp / datetime types

✤ No more hardcoded magic for timestamps

Security

Security

✤ More password hash choices

✤ Password expiration and policy enforcement

InnoDB

InnoDB

✤ Full-text search

✤ Online ALTER TABLE

✤ Performance & scalability

✤ Split kernel mutex - multiple purge threads - adaptive flushing

✤ Fast warmup - compression - data/log file placement - persistent statistics - limits on data dictionary size - import & export

Partitioning

Partitioning

✤ Promote/demote partitions and tables

✤ Limit queries to specified partitions

Performance Schema

Performance Schema

✤ Many more tables that are useful for DBAs

✤ Statement digests in particular

✤ Also, per-table, per-index, per-user, etc statistics

✤ Lower overhead

✤ More configurable

Replication

Replication

✤ Global transaction ID

✤ Binary log group commit

✤ Replication can be multi-threaded

✤ Binary log events are checksummed

✤ Replication is transactional and crash-safe

✤ Easy streaming binary log backups

NoSQL Access

NoSQL Access

✤ Access InnoDB directly via memcached protocol

✤ Bypass the parser, optimizer, etc

✤ The speed of memcached—but it’s ACID compliant

✤ And automatically consistent; no stale data

Lots and lots more

✤ Stored procedure improvements; a debugger for .NET

✤ Improved installers for Windows

✤ Host cache is no longer invisible; table cache is partitioned

✤ Read http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html but get a cup of coffee first.

Conclusions

✤ The MySQL community/ecosystem is thriving

✤ MySQL 5.5 was the best release in its history

✤ MySQL 5.6 is going to change the MySQL world in a big way

✤ MySQL is alive and well under Oracle’s ownership


Top Related