Tuesday Feb 26, 2013

MySQL User Group Meeting & MySQL Tech Tour in Moscow - March 21-22!

There is going to be a MySQL Tech Tour in Moscow planned for March 21, 2013 and followed by the local MySQL User Group meeting to talk about the MySQL 5.6! Please find details below.

MySQL Tech Tour:

Date: March 21, 2013
: http://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=166491&src=7667490&src=7667490&Act=175

MySQL User Group meeting:

Date: March 22, 2013
: Mail.Ru Airport; Leningradsky prospect 47 building 2
Planned time
: 19:00
Dmitry Lenev & Victoria Reznitchenko will speak about MySQL 5.6

Registration needed!

Monday Feb 25, 2013

Learn Developer Skills on MySQL, Most Trusted Open-Source Database

MySQL enables innovative Developers to create and deploy the next generation of web, embedded and Cloud/SaaS/DaaS applications on the latest generation of development frameworks and hardware platforms.

By taking the MySQL for Developers course, you will learn to write applications with the MySQL database server.

This course examines the tools used by MySQL development professionals. Expert instructors reference real-world examples when illustrating how to generate complex queries, and consume them in your application. You will perform lab work with Java and PHP, connecting to MySQL databases and executing queries and stored routines.

You can take this five-day, live instructor-led course as a:

  • Live-Virtual Class Event: No travel required. Follow the class from your own desk. Choose from a wide variety of events already on the schedule covering different timezones. Delivery available in English and German.
  • In-Class Event: Travel to an education center to take this class. Below is a selection of events already on the schedule.



 Delivery Language

 London, England

4 March 2013 


 Munich, Germany

 15 April 2013


Budapest, Hungary 

 15 April 2013


Milan, Italy

 15 April 2013


 Rome, Italy

 20 May 2013


 Turin, Italy

 3 June 2013


 Nieuwegein, Netherlands

 13 May 2013


 Warsaw, Poland

 8 April 2013


 Lisbon, Portgual

 13 May 2013

 European Portugese

 Porto, Portugal

13 May 2013 

 European Portugese

 Madrid, Spain

 13 May 2013


 Bern, Switzerland

11 April 2013 


 Zurich, Switzerland

11 April 2013 


 Nairobi, Kenya

18 March 2013 


 Tunis, Tunisia

20 May 2013 


Sao Paolo, Brazil 

 11 March 2013

Brazilian Portugese 

For more information on this course or other courses on the authentic MySQL curriculum, go to http://oracle.com/education/mysql.

Wednesday Feb 20, 2013

Enhance Your MySQL Skills with Virtual Developer Day: MySQL

MySQL is the world’s most popular open-source database, and powers websites and applications of numerous leading and fast-growing organizations.

On March 12, we’re hosting the first Virtual Developer Day: MySQL at 9am PST to give you a one-stop shop to learn all the essential MySQL skills and the latest features in MySQL 5.6 GA. With a combination of presentations and hands-on lab experience, you’ll have the opportunity to practice in your own environment and gain more in-depth knowledge to successfully design, develop, and manage your MySQL databases.

Virtual Developer Day: MySQL

Featuring speakers coming from Oracle’s MySQL engineering, support, product management, and sales consulting teams, this FREE virtual event has two tracks tailored for both fresh and experienced MySQL users. Attend the live sessions and sharpen your skills to:
•    Develop your new applications cost-effectively using MySQL
•    Improve performance of your existing MySQL databases
•    Manage your MySQL environment more efficiently

If you’re in Europe, Middle East or Africa, don’t worry! We have another live event for you on March 19 at 9:00 GMT so you can join the sessions and get better with MySQL during your business hours.

Don’t miss this opportunity so reserve your spot today!

Tuesday Feb 19, 2013


 FOSDEM 2013

During the weekend of Feb 2-3, 2013, the 13th edition of FOSDEM (Free Open-Source Developers' European Meeting) took place in Brussels, Belgium. This free event organized by volunteers brought together more than 7000 attendees from the open source community, which was much more than expected. It was located in the ULB Campus in several buildings covering about 488 sessions with a mix of keynotes, lightning talks, exams and developer rooms talks.

Both days were very busy on both places - MySQL stand and on Sunday also at MySQL & Friends developer room. We shared time on the stand with Lars Thalmann, Sveta Smirnova and Luis Soares - all had also very nice presentations at MySQL & Friends Developer room on Sunday, Feb 3rd. All 16 MySQL & Friends devroom sessions and its slides are or will be available at Fosdem website; unfortunately not all speakers gave us their slides to be uploaded at fosdem.org page, but we are working on that and I hope it will be soon available!

Overall MySQL & Friends devroom was successful, the room had seating for more than 100 people and in many sessions it was not enough! Here are some of the slides from the MySQL devroom:

  • Lars Thalmann, the Development Director for MySQL Replication, Backup, Connectors and Utilities run a session on What's new in MySQL;
  • Luis Soares, the Sr. Software Developer & MySQL Replication Team Lead (see Luis' FOSDEM blog) run the session on Advanced MySQL Replication Architectures, his slides can be found here;
  • Andrew Morgan, the MySQL Principal Product Manager had 2 sessions, one on Introduction to MySQL Cluster, second on NoSQL & SQL, both can be found at his FOSDEM blog; and also at Fosdem website.
  • Sveta Smirnova, the MySQL Principal Support Engineer than run a session on Troubleshooting MySQL performance.
  • And lastly Øystein Grøvlen, the Senior Principal Software Engineer in MySQL working on MySQL Query Optimizer had a session on When and How to Take Advantage of New Optimizer Features in MySQL 5.6.

For the missing slides please check the Fosdem website, if not yet all slides will be available soon.

A couple of photos from the event and also from the Saturday's social event can be found here.

Feb 19, 2013

Monday Feb 18, 2013

Great Time to Start on MySQL with MySQL for Beginners Training

What better time to start learning about the world's most popular open-source database - now that MySQL 5.6 has been released. With its increased performance, scalability, reliability and manageability, MySQL 5.6 helps users meet the most demanding Web, Cloud and embedded application requirements.

Virtual Developer's Day for MySQL

The first Virtual Developer Day for MySQL will take place on March 12 at 9:00 a.m. US, Pacific Time. The event will include presentations and hands-on labs to educate MySQL users on essential skills and the latest features in MySQL 5.6. Register  here.

MySQL for Beginners Training

In the MySQL for Beginners course, you learn to:

  • Install the MySQL server
  • Describe the features and benefits of MySQL
  • Describe the basics of relational databases
  • Install the MySQL server
  • Describe the features and benefits of MySQL
  • Describe the basics of relational databases
  • Describe the features of MySQL Workbench, MySQL Enterprise Monitor, MySQL Enterprise Backup and MySQL Performance Schema

You can take this 4 day instructor-led course as follows:

  • Training-on-Demand: Follow the lecture material through streaming video and book time to work through the lab exercises, all at a time that suits you and your pace, from your own desk.
  • Live-Virtual Class: Follow a live event from your own desk, avoiding travel costs. Delivery available in English and German.
  • In-Class: Travel to an education center to attend this class. Below is a sample of events already on the schedule.



 Delivery Language

Mechelen, Belgium 

 22 April 2013


London, England 

1 July 2013


Hamburg, Germany 

25 March 2013


Munich, Germany 

3 June 2013 


 Milan, Italy

 25 March 2013


 Rome, Italy

 4 November 2013


 Riga, Latvia

26 August 2013 


Amsterdam, Netherlands 

 21 May 2013


 Warsaw, Poland

 6 May 2013


Lisbon, Portugal 

25 March 2013 

 European Portugese

Porto, Portugal 

 25 March 2013

 European Portugese

 Barcelona, Spain

 15 April 2013


 Madrid, Spain

22 April 2013 


 Capetown, South Africa

22 July 2013 


 Pretoria, South Africa

22 April 2013 


 Banjul, Gambia

3 June 2013 


 Nairobi, Kenya

11 March 2013 


Petaling Jaya, Malaysia

 25 March 2013


Seoul, Korea 

 25 March 2013


Montreal, Canada 

25 March 2013 


Ottawa, Canada 

 25 March 2013


 Toronto, Canada

 25 March 2013


Mexico City, Mexico 

 4 March 2013


 Sao Paolo, Brazil

7 October 2013 

 Brazilian Portugese

To learn more about this class or other courses on the authentic MySQL Curriculum, go to http://oracle.com/education/mysql.

Monday Feb 11, 2013

New MySQL Administrator Training on MySQL 5.6

Get the most out of the great new release, MySQL 5.6, by taking the MySQL for Database Administrators training course.

During this 5 day instructor-led course you configure replication between multiple instances, design advanced replication topologies and recover from replication, network, or hardware failure taking advantage of MySQL 5.6 replication performance.

You also gain knowledge on the following:

Set up the Server and Databases

This course teaches you how to install, configure, maintain and tune databases for a wide variety of workloads and environments. You will install and configure MySQL and set appropriate configuration options. You will also connect to the server, using both graphical and command-line clients, while creating and populating databases.

Maintain and Secure Data

Expert Oracle instructors will also help you examine the structure of tables, their columns and data types and the different ways to check and repair tables. You will learn to program MySQL stored routines, events and triggers to process data in complex and automated ways. Explore how to partition tables, work with locking and transactions as well as the key features of InnoDB and other storage engines. You will develop an understanding of how data is processed, stored, and retrieved.

Configure for Performance

To help prevent and handle failures, this course teaches you to tune databases. Learn to choose and set the most appropriate options, while performing logical and physical backups.

Learn by Doing

Extensive hands-on practices guide you through each concept. You will install MySQL products, partition data, check and repair tables, perform backups and configure replication, create secured users and enable SSL security, and much more. Explore real-world problems and discover best practices as you work with the tools and techniques used by professional MySQL database administrators.

You can take this class as a live-virtual offering where there is no travel involved or as an in-class offering by traveling to an education center.

For full information on the authentic MySQL Curriculum go to http://oracle.com/education.

Thursday Feb 07, 2013

MySQL 5.6 Replication Performance

With data volumes and user populations growing, its no wonder that database performance is a hot topic in developer and DBA circles.  

Its also no surprise that continued performance improvements were one of the top design goals of the new MySQL 5.6 release which was declared GA on February 5th (note: GA means “Generally Available”, not “Gypsy Approved” @mysqlborat)

And the performance gains haven’t disappointed:

- Dimitri Kravtchuk’s Sysbench tests showed MySQL delivering up to 4x higher performance than the previous 5.5 release.

- Mikael Ronstrom’s testing showed up to 4x better scalability as thread counts rose to 48 and 60 threads (not so uncommon in commodity systems today)

Of course, YMMV (Your Mileage May Vary) in real-world workloads, but you can be reasonably certain you will see performance gains by upgrading to MySQL 5.6.  It is up to you whether you invest these gains to serve more applications and users from your MySQL databases, or you consolidate to fewer instances to reduce operational costs.

How about if you are using MySQL replication in order to scale out your database across commodity nodes, and as a foundation for High Availability (HA)? Performance here has also been improved through a combination of:

- Binary Log Group Commit

- Multi-Threaded Slaves

- Optimized Row-Based Replication

As well as giving you the benefits above; higher replication performance directly translates to:

- Reduced risk of losing data in the event of a failure on the master

- Improved read consistency from slaves

- Resource-efficient binlogs traversing the replication cluster

We will look at each of these in more detail.

Binlog Group Commit

Rather than applying writes one at a time, Binary Log Group Commit batches writes to the Binlog, significantly reducing overhead to the master. This is demonstrated by the benchmark results below.

Using the SysBench RW tests, enabling the binlog and using the default sync_binlog=0 reduces the throughput of the master by around 10%. With sync_binlog=1 (where the MySQL server synchronizes its binary log to disk after every write to the binlog, thereby giving maximum data safety), throughput is reduced by a further 5%.

To understand the difference this makes, the tests were repeated comparing MySQL 5.6 to MySQL 5.5 

Even with sync_binlog=1, MySQL 5.6 was still up to 4.5x faster than 5.5 with sync_binlog=0

Gone are the days when configuring replication resulted in a 50% or more hit to performance of your master.

The result of Binary Log Group Commit is that MySQL replication is much better able to keep pace with the demands of write-intensive workloads, imposing much less overhead on the master, even when the binlog is flushed to disk after each commit!

Details of the configurations used for the benchmark are in the Appendix at the end of this post.

You can learn more about the implementation of Binlog Group Commit from Mats Kindahl’s blog.

Multi-Threaded Slave

Looking beyond the replication master, it is also necessary to bring performance enhancements to the replication slaves.

Using Multi-Threaded Slaves, processing is split between worker threads based on schema, allowing updates to be applied in parallel, rather than sequentially. This delivers benefits to those workloads that isolate application data using databases - e.g. multi-tenant systems deployed in cloud environments.

Benchmarks demonstrate that Multi-Threaded Slaves increase performance by 5x.  

This performance enhancement translates to improved read consistency for clients accessing the replication cluster. Slaves are better able to keep up with the master, and so users are much less likely to need to throttle the sustained throughput of writes, just so that the slaves don't indefinitely fall further and further behind (previously some users had to reduce the capacity of their systems in order to reduce slave lag).

You can get all of the details on this benchmark and the configurations used in this earlier blog posting

Optimized Row-Based Replication

The final piece in improving replication performance is to introduce efficiencies to the binary log itself.

By only replicating those elements of the row image that have changed following INSERT, UPDATE and DELETE operations, replication throughput for both the master and slave(s) can be increased while binary log disk space, network resource and server memory footprint are all reduced.

This is especially useful when replicating across datacenters or cloud availability zones.

Another performance enhancements is the was Row-Based Replication events are handled on the slave against tables without Primary Keys. Updates would be made via multiple table scans. In MySQL 5.6, no matter size of the event, only one table scan is performed, significantly reducing the apply time.

You can learn more about Optimized Row Based Replication from the MySQL documentation.  

Crash-Safe Slaves and Binlog

Aka “Transactional Replication” this is more of an availability than a performance feature, but there is a nice performance angle to it.

The key concept behind crash safe replication is that replication positions are stored in tables rather than files and can therefore be updated transactionally, together with the data. This enables the slave or master to automatically roll back replication to the last committed event before a crash, and resume replication without administrator intervention. Not only does this reduce operational overhead, it also eliminates the risk of data loss or corruption.

From a performance perspective, it also means there is one less disk sync, since we leverage the storage engine's fsync and don't need an additional fsync for the file, giving users a performance gain.

Wrapping Up

So with a faster MySQL Server, InnoDB storage engine and replication, developers and DBAs can get ahead of performance demands. Bear in mind there is more to MySQL 5.6 replication than performance – for example Global Transaction Identifiers (GTIDs), replication event checksums, time-delayed replication and more.

To learn more about all of the new replication features in MySQL 5.6, download the Replication Introduction guide

To get up and running with MySQL replication, download the new Replication Tutorial Guide 

Appendix – Binary Log Group Commit Benchmarks

System Under Test:

5 x 12 thread Intel Xeon E7540 CPUs @2.00 GHz

512 GB memory

Oracle Linux 6.1

Configuration file:

1) --innodb_purge_threads=1

2) --innodb_file_format=barracuda

3) --innodb-buffer-pool-size=8192M

4) --innodb-support-xa=FALSE

5) --innodb-thread-concurrency=0

6) --innodb-flush-log-at-trx-commit=2

7) --innodb-log-file-size=8000M

8) --innodb-log-buffer-size=256M

9) --innodb-io-capacity=2000

10) --innodb-io-capacity-max=4000

11) --innodb-flush-neighbors=0

12) --skip-innodb-adaptive-hash-index

13) --innodb-read-io-threads=8

14) --innodb-write-io-threads=8

15) --innodb_change_buffering=all

16) --innodb-spin-wait-delay=48

17) --innodb-stats-on-metadata=off

18) --innodb-buffer-pool-instances=12

19) --innodb-monitor-enable='%'

20) --max-tmp-tables=100

21) --performance-schema

22) --performance-schema-instrument='%=on'

23) --query-cache-size=0

24) --query-cache-type=0

25) --max-connections=4000

26) --max-prepared-stmt-count=1048576

27) --sort-buffer-size=32768

28) --table-open-cache=4000

29) --table-definition-cache=4000

30) --table-open-cache-instances=16

31) --tmp-table-size=100M

32) --max-heap-table-size=1000M

33) --key-buffer-size=50M

34) --join-buffer-size=1000000

Tuesday Feb 05, 2013

The Best MySQL Release Ever - MySQL 5.6 is now GA

MySQL 5.6 is now generally available. Read the press release.

Chock-full of new enhancements and features around performance, scalability and availability, MySQL 5.6 is the best MySQL release ever. Read Rob Young's blog article on the key enhancements in MySQL 5.6.

This is open source goodness all around.

Congratulations to the MySQL Engineering team on delivering a stellar product release yet again for the MySQL community and users!

MySQL 5.6 Replication: New Resources for Database Scaling and HA

MySQL 5.6 reached GA (General Availability) today and is packed with a wealth of new features and capabilities.  Exciting stuff!

MySQL 5.6 also introduces the largest set of enhancements to replication ever delivered in a single release, including:
- 5x higher performance to improve consistency across a cluster and reduce the risks of data loss in the event of a master failing
- Self-healing clusters with automatic failover and recovery from outages or planned maintenance
- Assured data integrity with checksums implemented across the replication workflow
- DevOps automation

Of course, getting started with all of these enhancements can be a challenge - whether you are new to MySQL replication or an experienced user. So two new Guides are available to help take advantage of everything replication offers in MySQL 5.6.

The introduction takes you through new 5.6 features, including Global Transaction Identifiers (GTIDs), BinLog Group Commit, Multi-Threaded Slaves, Crash-safe replication, Checksums, etc.
To provide context to these features, the Introduction Guide takes Developers and DBAs through the concepts of replication, including: 

- Use-cases such as scaling out on commodity hardware, high availability, geo-redundancy for DR and data placement, and supporting complex analytics alongside high velocity OLTP operations in the same cluster

- The replication workflow and internals, discussing the roles of different threads and log files 

- Controlling data consistency using different synchronisation models

- Pros and cons of Statement-Based and Row-Based Replication 

- Monitoring and managing replication using tools such as the replication dashboard within MySQL Enterprise Monitor 

Having learned the concepts of replication and what's new in MySQL 5.6, the Tutorial provides step-by-step guides to configuring, provisioning and managing replication, covering:

- Configuring replication with master and slave .cnf files, creating users, introducing replication to an existing application, initialisation and checking proper operation, using GTIDs and other new features

- Migration to semi-synchronous replication for improved data consistency and reduced risk of data loss

- Administration and configuration by checking slave status, suspending replication and viewing binary logs

- Failover and recovery, including pre-requisites, detecting an outage, slave promotion, redirecting the application and recovering a failed master

These new resources provide everything you need to get started in building your next generation web, cloud, social or mobile application with the world's most popular open source database.

You will find more information in the Docs.  Also, look out for a live webinar in March where we will demonstrate all that is new in MySQL 5.6 replication.

Monday Feb 04, 2013

Learn to Develop Dynamic Web Applications with PHP and MySQL

Learn to create best-of-breed web applications with the MySQL and PHP - Developing Dynamic Web Applications course

After taking this course you will be able to:

  • Describe the LAMP architecture
  • Use the basic components of PHP to build a foundation for more complex web applications
  • Understand the basic components of MySQL
  • Use SQL query commands to retrieve data from the MYSQL database
  • Change table data using the SQL Data Manipulation Language (DML) commands
  • Retrieve data from multiple MySQL tables using Joins
  • Create web based forms that interact with the end user and the data within MySQL
  • Use session handling to authenticate and monitor user identities
  • Describe the purpose of template systems

You can take this instructor-led course as a:

  • Live Virtual Class: Take this course from your own desk. No travel required. Choose from the many events already on the schedule suiting different timezones.
  • In-Class: Travel to an education center. Below are some of the events already on the schedule.

 Location  Date  Delivery Language
 Rome, Italy
6 May 2013
Warsaw, Poland
 25 March 2013
 Lisbon, Portugal  15 April 2013
European Portuguese
 Porto, Portugal  15 April 2013
European Portuguese
 Barcelona, Spain  2 April 2013
 Madrid, Spain  4 March 2013
Tunis, Tunisia  18 March 2013

To register for this course, request another event or learn more about the authentic MySQL Curriculum, go to http://oracle.com/education/mysql.


Get the latest updates on products, technology, news, events, webcasts, customers and more.




« February 2013 »