Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MariaDB OverView

MariaDB OverView

Oursky Limited

January 28, 2013
Tweet

More Decks by Oursky Limited

Other Decks in Programming

Transcript

  1. History of MySQL • Started from 1995, founded by Monty

    • Oracle bought the InnoDB engine in 2005 • MySQL Ab was sold to Sun in 2008 ($1 billion) • Monty and the team left Sun in 2009 and work on MariaDB • Oracle acquired Sun (and including MySQL) in 2009 • Original MySQL developers start focusing on MariaDB
  2. What is MariaDB • Forked from MySQL code base •

    Continuously merging latest MySQL code base • Binary compatible (data and API) to MySQL, trivial to replace MySQL in minutes • More awesome features than MySQL
  3. MariaDB Versioning • Latest stable release is 5.5.28a (= Maria5.3

    + MySQL5.5) • Current in development 10.0.0 ◦ Some features backported from MySQL 5.6 ◦ Misleading if to be MariaDB 5.6 for next version, so consider to start as 10.0.0
  4. More storage database XtraDB • Forked from InnoDB plugin by

    Percona • Drop-in replacement for InnoDB • Optimized, faster start, more statistics • Scale better on many cores • Use memory more efficiently
  5. More storage database SphinxSE • Storage engine for Sphinx search

    engine Cassandra • Available in 10.0 • Able to access data from Cassandra cluster • Example
  6. Microseconds • Supports in datetime, time and timestamp • Specified

    as DATETIME(6), TIME(3), precision can be from 0 to 6, by default it will be 0 • SELECT CURTIME(4); --> 11:57:32.2421
  7. Table elimination • In MySQL, view is just a query

    saving ◦ Convenient but have performance issue ◦ Joins will be preserved in all queries • If certain tables will not be used in the query, will eliminate it in query plan
  8. Virtual Columns • Allow to create calculated fields on the

    fly • Allow persistent storage and virtual (calculated immediately)
  9. Dynamic Columns Limitations • Currently column names are identified as

    number (0-65535), this is also a TODO to have name for each dynamic column in future release • Only way to add index to dynamic column is to create virtual column (but this column is initiated so that's not quite "dynamic")
  10. Faster joins and subqueries • Optimized for semi and non-semi

    subquery ◦ Transform subqueries to semi joins (something similar to inner join) ◦ Choose appropriate semi-join strategy from 5 of them ◦ Also available in MySQL5.6 • Subquery cache ◦ Optimize the evaluation of correlated subqueries by storing results together with correlation parameters in a cache ◦ Avoid re-execution of the subquery in cases where the result is already in the cache