Max Mether
max@skysql.com
@maxmether
MariaDB -
A MySQL replacement?
Boston Metup 2012
What is MariaDB?
• A branch of MySQL
– MariaDB is a backward compatible, drop-in replacement
for the MySQL Database Server...
A Brief History
• First version of what would become MySQL
created by Monty Widenius 1983
• MySQL AB founded in 1995
• MyS...
Who’s Behind MariaDB
• Monty Program
– ~30 core MySQL developers
– Located around the world
• Community
10.09.2012 SkySQL ...
Community and MariaDB
• The goal of MariaDB is to provide a
community developed, stable and free
database
• MariaDB takes ...
MariaDB 5.1 – Feb 2010
• Storage Engines
– PBXT*
– XtraDB
– FederatedX
– Aria
• Bugfixes
• Removal of Mutexes
10.09.2012 S...
MariaDB 5.1
• Microsecond support
– Slow query log, SHOW PROCESSLIST etc
• Thread pool*
– Pool of threads instead of one t...
Table Elimination
10.09.2012 SkySQL Ab 2011 Confidential 8
create view actors as
select ACNAM_Name, ACDOB_birthdate, ACRAT...
Table Elimination
10.09.2012 SkySQL Ab 2011 Confidential 9
create view actors as
select ACNAM_Name, ACDOB_birthdate, ACRAT...
MariaDB 5.2 – Nov 2010
• Pluggable authentication
– Authentication handled by plugins
– PAM plugin included
• User statist...
MariaDB 5.2
• Virtual Columns
– PERSISTENT or VIRTUAL
• Sphinx Storage Engine
– Allows access to Sphinx through MySQL
• Se...
Segmented Key Cache
10.09.2012 SkySQL Ab 2011 Confidential 12
MariaDB 5.3 – Jan 2012
• Handler socket
– Direct access to InnoDB/XtraDB storage layer
– No SQL statements
• Simple CRUD o...
Dynamic Columns
10.09.2012 SkySQL Ab 2011 Confidential 14
MariaDB [test]> create table t1 (id int auto_increment primary k...
Dynamic Columns
10.09.2012 SkySQL Ab 2011 Confidential 15
MariaDB [test]> select name from t1 where COLUMN_GET(dynstr, 1 a...
MariaDB 5.3
• Replication enhancements
– Original statement logged with RBR events
– Checksum for binlog events
– RBR fixe...
Progress Report
• Progress report for ALTER TABLE
10.09.2012 SkySQL Ab 2011 Confidential 17
MariaDB [employees]> alter tab...
Optimizer Enhancements
1. Sub-query optimizations
2. Join additions
3. Optimizations for derived tables and views
4. Disk ...
Optimizer Enhancements
1. Sub-query optimizations
– Semi-join subquery optimization
– Materialization for non-correlated I...
Optimizer Enhancements
2. Join additions
– Block Nested-Loop-Joins for outer joins
– Block Hash-Joins
– Batch-Key-Access
1...
Optimizer Enhancements
3. Optimizations for derived tables and views
– Mergeable derived tables processed like VIEWs
– Opt...
Group Commit
10.09.2012 SkySQL Ab 2011 Confidential 22
XtraDB / InnoDB
Group Commit
10.09.2012 SkySQL Ab 2011 Confidential 23
COMMIT
Binary log
XtraDB / InnoDB
3 fsyncs /
transaction
2
Group Commit
10.09.2012 SkySQL Ab 2011 Confidential 24
MariaDB 5.5 – April 2012
• New optimized thread pool implementation
– Pool size dynamic
– Different implementation on Linu...
Next MariaDB
• Global transaction Id (from MySQL 5.6)
• Multi-source replication
• New improved InnoDB (from MySQL 5.6)
• ...
A branch or a fork?
• MySQL 5.1 CE = MySQL EE <-> MariaDB 5.1
• MariaDB 5.2 and 5.3 <-> MySQL 5.1 CE & EE
• MySQL 5.5 CE !...
Getting MariaDB
• http://mariadb.org is the main place
• Available via OpenSUSE build services
• Also available via
– Gent...
Support & Services
• Monty Program does NRE
• Enterprise level support available from SkySQL
– Monty Program providing L3
...
More Information
• Downloads: http://mariadb.org/
• Mailing lists on launchpad
• #maria on freenode
• Knowledgbase: http:/...
10.09.2012 SkySQL Ab 2011 Confidential 31
THANK YOU!
Max Mether
max@skysql.com
@maxmether
Upcoming SlideShare
Loading in …5
×

2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗

355 views

Published on

2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
http://www.ossez.com/forum.php?mod=viewthread&tid=26719&fromuid=426
(出处: OSSEZ)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
355
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗

  1. 1. Max Mether max@skysql.com @maxmether MariaDB - A MySQL replacement? Boston Metup 2012
  2. 2. What is MariaDB? • A branch of MySQL – MariaDB is a backward compatible, drop-in replacement for the MySQL Database Server • Open Source – The source code for MariaDB is publicly available from Launchpad – All code in MariaDB is open source • No closed source modules – Open bugs database 10.09.2012 SkySQL Ab 2011 Confidential 2
  3. 3. A Brief History • First version of what would become MySQL created by Monty Widenius 1983 • MySQL AB founded in 1995 • MySQL AB acquired by Sun Microsystems early 2008 for $1bn • Monty Program founded in late 2008 • Oracle acquire Sun April 2009 • MariaDB 5.1 released in February 2010 10.09.2012 SkySQL Ab 2011 Confidential 3
  4. 4. Who’s Behind MariaDB • Monty Program – ~30 core MySQL developers – Located around the world • Community 10.09.2012 SkySQL Ab 2011 Confidential 4
  5. 5. Community and MariaDB • The goal of MariaDB is to provide a community developed, stable and free database • MariaDB takes community contributions • Many MariaDB Captains outside of Monty Program (64% MP, 36% outside) • Open development model 10.09.2012 SkySQL Ab 2011 Confidential 5
  6. 6. MariaDB 5.1 – Feb 2010 • Storage Engines – PBXT* – XtraDB – FederatedX – Aria • Bugfixes • Removal of Mutexes 10.09.2012 SkySQL Ab 2011 Confidential 6 MariaDB 5.1 = MySQL 5.1 + the following:
  7. 7. MariaDB 5.1 • Microsecond support – Slow query log, SHOW PROCESSLIST etc • Thread pool* – Pool of threads instead of one thread /connection 10.09.2012 SkySQL Ab 2011 Confidential 7 MariaDB [(none)]> select id, time, time_ms, command, state -> from information_schema.processlist, (select sleep(2)) t; +----+------+----------+---------+-----------+ | id | time | time_ms | command | state | +----+------+----------+---------+-----------+ | 37 | 2 | 2000.493 | Query | executing | +----+------+----------+---------+-----------+ 1 row in set (2.00 sec)
  8. 8. Table Elimination 10.09.2012 SkySQL Ab 2011 Confidential 8 create view actors as select ACNAM_Name, ACDOB_birthdate, ACRAT_rating from ac_anchor left join ac_name on ac_anchor.AC_ID=ac_name.AC_ID left join ac_birthdate on ac_anchor.AC_ID=ac_birthdate.AC_ID left join ac_rating on (ac_anchor.AC_ID=ac_rating.AC_ID and ac_rating.ACRAT_fromdate = (select max(sub.ACRAT_fromdate) from ac_rating sub where sub.AC_ID = ac_rating.AC_ID)) select ACRAT_rating from actors where ACNAM_name='Gary Oldman' Actor Name Birth date Rating 1 n
  9. 9. Table Elimination 10.09.2012 SkySQL Ab 2011 Confidential 9 create view actors as select ACNAM_Name, ACDOB_birthdate, ACRAT_rating from ac_anchor left join ac_name on ac_anchor.AC_ID=ac_name.AC_ID left join ac_birthdate on ac_anchor.AC_ID=ac_birthdate.AC_ID left join ac_rating on (ac_anchor.AC_ID=ac_rating.AC_ID and ac_rating.ACRAT_fromdate = (select max(sub.ACRAT_fromdate) from ac_rating sub where sub.AC_ID = ac_rating.AC_ID)) select ACRAT_rating from actors where ACNAM_name='Gary Oldman' Actor Name Birth date Rating 1 n x
  10. 10. MariaDB 5.2 – Nov 2010 • Pluggable authentication – Authentication handled by plugins – PAM plugin included • User statistics – CLIENT_STATISTICS – USER_STATISTICS – INDEX_STATISTICS – TABLE_STATISTICS 10.09.2012 SkySQL Ab 2011 Confidential 10 MariaDB 5.2 = MariaDB 5.1 + the following:
  11. 11. MariaDB 5.2 • Virtual Columns – PERSISTENT or VIRTUAL • Sphinx Storage Engine – Allows access to Sphinx through MySQL • Segmented MyISAM key cache – Key cache divided into different segments – Allows for better key cache concurrency – Between 1 and 64 segments 10.09.2012 SkySQL Ab 2011 Confidential 11
  12. 12. Segmented Key Cache 10.09.2012 SkySQL Ab 2011 Confidential 12
  13. 13. MariaDB 5.3 – Jan 2012 • Handler socket – Direct access to InnoDB/XtraDB storage layer – No SQL statements • Simple CRUD operations on tables – Can be match faster for large batch operations • Dynamic columns – Allows you to create columns with dynamic content – Basically a blob with handling functions 10.09.2012 SkySQL Ab 2011 Confidential 13 MariaDB 5.3 = MariaDB 5.2 + the following:
  14. 14. Dynamic Columns 10.09.2012 SkySQL Ab 2011 Confidential 14 MariaDB [test]> create table t1 (id int auto_increment primary key, -> name varchar(40), -> type enum ("shirt", "phone", "computer"), -> price decimal(10,2), -> dynstr mediumblob); Query OK, 0 rows affected (0.11 sec) MariaDB [test]> insert into t1 (name, type, price, dynstr) values -> ("Funny shirt", "shirt", 10.0, COLUMN_CREATE(1, "blue", 10, "XL")), -> ("nokia", "phone", 649, COLUMN_CREATE(1, "black", 2, "touchscreen")), -> ("htc Desire hd", "phone", 579, COLUMN_CREATE(1, "black", 3, "Android")), -> ("BM/Lenovo Thinkpad X60s", "computer", 419, COLUMN_CREATE(1, "black", 3, "Linux")); Query OK, 4 rows affected (0.04 sec) Records: 4 Duplicates: 0 Warnings: 0 MariaDB [test]> select id, name, type, price, length(dynstr) as len, column_list(dynstr) as list from t1; +----+-------------------------+----------+--------+------+------+ | id | name | type | price | len | list | +----+-------------------------+----------+--------+------+------+ | 1 | Funny shirt | shirt | 10.00 | 17 | 1,10 | | 2 | nokia | phone | 649.00 | 27 | 1,2 | | 3 | htc Desire hd | phone | 579.00 | 23 | 1,3 | | 4 | BM/Lenovo Thinkpad X60s | computer | 419.00 | 21 | 1,3 | +----+-------------------------+----------+--------+------+------+ 4 rows in set (0.03 sec)
  15. 15. Dynamic Columns 10.09.2012 SkySQL Ab 2011 Confidential 15 MariaDB [test]> select name from t1 where COLUMN_GET(dynstr, 1 as char(10)) = "black"; +-------------------------+ | name | +-------------------------+ | nokia | | htc Desire hd | | BM/Lenovo Thinkpad X60s | +-------------------------+ 3 rows in set (0.01 sec) MariaDB [test]> MariaDB [test]> select name, COLUMN_GET(dynstr, 1 as char(10)) from t1 where COLUMN_EXISTS(dynstr, 1); +-------------------------+-----------------------------------+ | name | COLUMN_GET(dynstr, 1 as char(10)) | +-------------------------+-----------------------------------+ | Funny shirt | blue | | nokia | black | | htc Desire hd | black | | BM/Lenovo Thinkpad X60s | black | +-------------------------+-----------------------------------+ 4 rows in set (0.00 sec)
  16. 16. MariaDB 5.3 • Replication enhancements – Original statement logged with RBR events – Checksum for binlog events – RBR fixed for tables with no PK – Consistent snapshot between storage engines • User feedback plugin • Extended OpenGIS SFS 10.09.2012 SkySQL Ab 2011 Confidential 16 MariaDB 5.3 = MariaDB 5.2 + the following:
  17. 17. Progress Report • Progress report for ALTER TABLE 10.09.2012 SkySQL Ab 2011 Confidential 17 MariaDB [employees]> alter table salaries engine = maria; Stage: 1 of 2 'copy to tmp table' 17.55% of stage done MariaDB [employees]> select id, user, db, command, state, -> time_ms, progress from information_schema.processlist; +---------+-------------------+-----------+----------+ | command | state | time_ms | progress | +---------+-------------------+-----------+----------+ | Query | copy to tmp table | 23407.131 | 17.551 | +---------+-------------------+-----------+----------+ 1 row in set (0.47 sec)
  18. 18. Optimizer Enhancements 1. Sub-query optimizations 2. Join additions 3. Optimizations for derived tables and views 4. Disk access optimization 5. Optimizer control 10.09.2012 SkySQL Ab 2011 Confidential 18
  19. 19. Optimizer Enhancements 1. Sub-query optimizations – Semi-join subquery optimization – Materialization for non-correlated IN-queries – Sub-query cache 10.09.2012 SkySQL Ab 2011 Confidential 19 Subqueries are finally usable in practice! It is no longer necessary to rewrite subqueries manually into joins or into separate queries
  20. 20. Optimizer Enhancements 2. Join additions – Block Nested-Loop-Joins for outer joins – Block Hash-Joins – Batch-Key-Access 10.09.2012 SkySQL Ab 2011 Confidential 20 Before MariaDB 5.3 only Nested-Loop-Joins available
  21. 21. Optimizer Enhancements 3. Optimizations for derived tables and views – Mergeable derived tables processed like VIEWs – Optimizer can create indexes over materialized derived tables 4. Disk access optimization – Index Condition Pushdown – Multi-Range-Read optimization (MRR) 5. Optimizer control – @@optimizer_switch for all new options 10.09.2012 SkySQL Ab 2011 Confidential 21
  22. 22. Group Commit 10.09.2012 SkySQL Ab 2011 Confidential 22 XtraDB / InnoDB
  23. 23. Group Commit 10.09.2012 SkySQL Ab 2011 Confidential 23 COMMIT Binary log XtraDB / InnoDB 3 fsyncs / transaction 2
  24. 24. Group Commit 10.09.2012 SkySQL Ab 2011 Confidential 24
  25. 25. MariaDB 5.5 – April 2012 • New optimized thread pool implementation – Pool size dynamic – Different implementation on Linux and Windows • Fine grained tuning possible on Linux • @@skip_replication • LIMIT ROWS EXAMINED 10.09.2012 SkySQL Ab 2011 Confidential 25 MariaDB 5.5 = MySQL 5.5 + MariaDB 5.3 features + the following: MariaDB [employees]> SELECT * from t1, t2 -> LIMIT 10 ROWS EXAMINED 1000;
  26. 26. Next MariaDB • Global transaction Id (from MySQL 5.6) • Multi-source replication • New improved InnoDB (from MySQL 5.6) • Cassandra storage engine 10.09.2012 SkySQL Ab 2011 Confidential 26 All highly speculative Vote for features on http://www.skysql.com/content/ new-server-functionality-have-your-say
  27. 27. A branch or a fork? • MySQL 5.1 CE = MySQL EE <-> MariaDB 5.1 • MariaDB 5.2 and 5.3 <-> MySQL 5.1 CE & EE • MySQL 5.5 CE != MySQL 5.5 EE – Commercial extensions – MariaDB 5.5 implements same features • Merged nonetheless • 5.6 ? 10.09.2012 SkySQL Ab 2011 Confidential 27
  28. 28. Getting MariaDB • http://mariadb.org is the main place • Available via OpenSUSE build services • Also available via – Gentoo – FreeBSD – Homebrew – Slackware – ArchLinux • yum and apt repos available from MP 10.09.2012 SkySQL Ab 2011 Confidential 28
  29. 29. Support & Services • Monty Program does NRE • Enterprise level support available from SkySQL – Monty Program providing L3 • Training, consulting etc available from SkySQL • Others providing MariaDB services: http://mariadb.org/service-providers/ 10.09.2012 SkySQL Ab 2011 Confidential 29
  30. 30. More Information • Downloads: http://mariadb.org/ • Mailing lists on launchpad • #maria on freenode • Knowledgbase: http://kb.askmonty.org/ • Support: http://www.skysql.com/products/skysql-enterprise • Training & consulting: http://www.skysql.com/services/mysql/overview • MariaDB book: MariaDB Crash Course by Ben Forta 10.09.2012 SkySQL Ab 2011 Confidential 30
  31. 31. 10.09.2012 SkySQL Ab 2011 Confidential 31 THANK YOU! Max Mether max@skysql.com @maxmether

×