Sunday Sep 30, 2012

Attending MySQL Connect? Your Opinion Matters.

Take the MySQL Connect 2012 Survey

Thanks to everyone who is at the first ever MySQL Connect Conference in San Francisco this weekend! Don't forget to take your Conference and Session Surveys. Your opinions help shape next year's conference.

  • Take a survey for each of the sessions you attend and be entered into a drawing for one prize for $200 American Express Gift Certificate.
  • Fill in the daily conference survey and be entered into a drawing for one prize for a $500 American Express Gift Card
  • Surveys are located here.

Make your opinion count! Take the survey now.

Congratulations to Robin Schumacher from DataStax as he is the winner of the Saturday survey!

Saturday Sep 29, 2012

New in MySQL Enterprise Edition: Policy-based Auditing!

For those with an interest in MySQL, this weekend's MySQL Connect conference in San Francisco has gotten off to a great start. On Saturday Tomas announced the feature complete MySQL 5.6 Release Candidate that is now available for Community adoption and testing. This announcement marks the sprint to GA that should be ready for release within the next 90 days. You can get a quick summary of the key 5.6 features here or better yet download the 5.6 RC (under “Development Releases”), review what's new and try it out for yourself! There were also product related announcements around MySQL Cluster 7.3 and MySQL Enterprise Edition . This latter announcement is of particular interest if you are faced with internal and regulatory compliance requirements as it addresses and solves a pain point that is shared by most developers and DBAs; new, out of the box compliance for MySQL applications via policy-based audit logging of user and query level activity.

One of the most common requests we get for the MySQL roadmap is for quick and easy logging of audit events. This is mainly due to how web-based applications have evolved from nice-to-have enablers to mission-critical revenue generation and the important role MySQL plays in the new dynamic. In today’s virtual marketplace, PCI compliance guidelines ensure credit card data is secure within e-commerce apps; from a corporate standpoint, Sarbanes-Oxely, HIPAA and other regulations guard the medical, financial, public sector and other personal data centric industries. For supporting applications audit policies and controls that monitor the eyes and hands that have viewed and acted upon the most sensitive of data is most commonly implemented on the back-end database.

With this in mind, MySQL 5.5 introduced an open audit plugin API that enables all MySQL users to write their own auditing plugins based on application specific requirements. While the supporting docs are very complete and provide working code samples, writing an audit plugin requires time and low-level expertise to develop, test, implement and maintain. To help those who don't have the time and/or expertise to develop such a plugin, Oracle now ships MySQL 5.5.28 and higher with an easy to use, out-of-the-box auditing solution; MySQL Enterprise Audit.

MySQL Enterprise Audit

The premise behind MySQL Enterprise Audit is simple; we wanted to provide an easy to use, policy-based auditing solution that enables you to quickly and seamlessly add compliance to your MySQL applications. MySQL Enterprise Audit meets this requirement by enabling you to:

1. Easily install the needed components.

Installation requires an upgrade to MySQL 5.5.28 (Enterprise edition), which can be downloaded from the My Oracle Support portal or the Oracle Software Delivery Cloud. After installation, you simply add the following to your my.cnf file to register and enable the audit plugin:

[mysqld] (keep in mind the audit_log suffix is platform dependent, so .dll on Windows, etc.)

or alternatively you can load the plugin at runtime:

mysql> INSTALL PLUGIN audit_log SONAME '';

2. Dynamically enable and disable the audit stream for a specific MySQL server.

A new global variable called audit_log_policy allows you to dynamically enable and disable audit stream logging for a specific MySQL server. The variable parameters are described below.

3. Define audit policy based on what needs to be logged (everything, logins, queries, or nothing), by server.

The new audit_log_policy variable uses the following valid, descriptively named values to enable, disable audit stream logging and to filter the audit events that are logged to the audit stream:

  • "ALL" - enable audit stream and log all events

  • "LOGINS" - enable audit stream and log only login events

  • "QUERIES" - enable audit stream and log only querie events

  • "NONE" - disable audit stream

4. Manage audit log files using basic MySQL log rotation features.

A new global variable, audit_log_rotate_on_size, allows you to automate the rotation and archival of audit stream log files based on size with archived log files renamed and appended with datetime stamp when a new file is opened for logging.

5. Integrate the MySQL audit stream with MySQL, Oracle tools and other third-party solutions.

The MySQL audit stream is written as XML, using UFT-8 and can be easily formatted for viewing using a standard XML parser. This enables you to leverage tools from MySQL and others to view the contents. The audit stream was also developed to meet the Oracle database audit stream specification so combined Oracle/MySQL shops can import and manage MySQL audit images using the same Oracle tools they use for their Oracle databases.

So assuming a successful MySQL 5.5.28 upgrade or installation, a common set up and use case scenario might look something like this:

It should be noted that MySQL Enterprise Audit was designed to be transparent at the application layer by allowing you to control the mix of log output buffering and asynchronous or synchronous disk writes to minimize the associated overhead that comes when the audit stream is enabled. The net result is that, depending on the chosen audit stream log stream options, most application users will see little to no difference in response times when the audit stream is enabled.

So what are your next steps?

As always, thanks for your continued support of MySQL!

Tutorial: Getting Started with the NoSQL JavaScript / Node.js API for MySQL Cluster

Tutorial authored by Craig Russell and JD Duncan 

The MySQL Cluster team are working on a new NoSQL JavaScript connector for MySQL. The objectives are simplicity and high performance for JavaScript users:

- allows end-to-end JavaScript development, from the browser to the server and now to the world's most popular open source database

- native "NoSQL" access to the storage layer without going first through SQL transformations and parsing.

Node.js is a complete web platform built around JavaScript designed to deliver millions of client connections on commodity hardware. With the MySQL NoSQL Connector for JavaScript, Node.js users can easily add data access and persistence to their web, cloud, social and mobile applications.

While the initial implementation is designed to plug and play with Node.js, the actual implementation doesn't depend heavily on Node, potentially enabling wider platform support in the future.


The architecture and user interface of this connector are very different from other MySQL connectors in a major way: it is an asynchronous interface that follows the event model built into Node.js.

To make it as easy as possible, we decided to use a domain object model to store the data. This allows for users to query data from the database and have a fully-instantiated object to work with, instead of having to deal with rows and columns of the database. The domain object model can have any user behavior that is desired, with the NoSQL connector providing the data from the database.

To make it as fast as possible, we use a direct connection from the user's address space to the database. This approach means that no SQL (pun intended) is needed to get to the data, and no SQL server is between the user and the data.

The connector is being developed to be extensible to multiple underlying database technologies, including direct, native access to both the MySQL Cluster "ndb" and InnoDB storage engines.

The connector integrates the MySQL Cluster native API library directly within the Node.js platform itself, enabling developers to seamlessly couple their high performance, distributed applications with a high performance, distributed, persistence layer delivering 99.999% availability.

The following sections take you through how to connect to MySQL, query the data and how to get started.

Connecting to the database

A Session is the main user access path to the database. You can get a Session object directly from the connector using the openSession function:

var nosql = require("mysql-js");

var dbProperties = {

    "implementation" : "ndb",

    "database" : "test"


nosql.openSession(dbProperties, null, onSession);

The openSession function calls back into the application upon creating a Session. The Session is then used to create, delete, update, and read objects.

Reading data

The Session can read data from the database in a number of ways. If you simply want the data from the database, you provide a table name and the key of the row that you want. For example, consider this schema:

create table employee (

  id int not null primary key,

  name varchar(32),

  salary float

) ENGINE=ndbcluster;

Since the primary key is a number, you can provide the key as a number to the find function.

function onSession = function(err, session) {

  if (err) {


    ... error handling


  session.find('employee', 0, onData);


function onData = function(err, data) {

  if (err) {


    ... error handling


  console.log('Found: ', JSON.stringify(data));

  ... use data in application


If you want to have the data stored in your own domain model, you tell the connector which table your domain model uses, by specifying an annotation, and pass your domain model to the find function.

var annotations = new nosql.Annotations();

function Employee = function(id, name, salary) { = id; = name;

  this.salary = salary;

  this.giveRaise = function(percent) {

    this.salary *= percent;



annotations.mapClass(Employee, {'table' : 'employee'});

function onSession = function(err, session) {

  if (err) {


    ... error handling


  session.find(Employee, 0, onData);


Updating data

You can update the emp instance in memory, but to make the raise persistent, you need to write it back to the database, using the update function.

function onData = function(err, emp) {

  if (err) {


    ... error handling


  console.log('Found: ', JSON.stringify(emp));

  emp.giveRaise(0.12); // gee, thanks!

  session.update(emp); // oops, session is out of scope here


Using JavaScript can be tricky because it does not have the concept of block scope for variables. You can create a closure to handle these variables, or use a feature of the connector to remember your variables.

The connector api takes a fixed number of parameters and returns a fixed number of result parameters to the callback function. But the connector will keep track of variables for you and return them to the callback. So in the above example, change the onSession function to remember the session variable, and you can refer to it in the onData function:

function onSession = function(err, session) {

  if (err) {


    ... error handling


  session.find(Employee, 0, onData, session);


function onData = function(err, emp, session) {

  if (err) {


    ... error handling


  console.log('Found: ', JSON.stringify(emp));

  emp.giveRaise(0.12); // gee, thanks!

  session.update(emp, onUpdate); // session is now in scope


function onUpdate = function(err, emp) {

  if (err) {


    ... error handling


Inserting data

Inserting data requires a mapped JavaScript user function (constructor) and a session. Create a variable and persist it:

function onSession = function(err, session) {

  var data = new Employee(999, 'Mat Keep', 20000000);

  session.persist(data, onInsert);



Deleting data

To remove data from the database, use the session remove function. You use an instance of the domain object to identify the row you want to remove. Only the key field is relevant.

function onSession = function(err, session) {

  var key = new Employee(999);

  session.remove(Employee, onDelete);



More extensive queries

We are working on the implementation of more extensive queries along the lines of the criteria query api. Stay tuned.

How to evaluate

The MySQL Connector for JavaScript is available for download from Select the build:


You can also clone the project on GitHub

Since it is still early in development, feedback is especially valuable (so don't hesitate to leave comments on this blog, or head to the MySQL Cluster forum). Try it out and see how easy (and fast) it is to integrate MySQL Cluster into your Node.js platforms.

You can learn more about other previewed functionality of MySQL Cluster 7.3 here

Thursday Sep 27, 2012

2 Days to Go before MySQL Connect - Focus on Hands-On Labs

The Oracle MySQL team is very eager to meet all MySQL community members, users, customers and partners gathering this weekend in San Francisco for MySQL Connect!

Eight different Hands-On Labs will give you the opportunity to get hands-on experience on the following topics. All taking place in Plaza Room A.


11.30 am
Developing Applications with MySQL and Java—Mark Matthews, Oracle

1.00 pm (2.5 hours long)
Getting Started with MySQL—Gillian Gunson and Alfredo Kojima, Oracle

4.00 pm
Getting Started with MySQL Cluster—Santo Leto, Oracle

5.30 pm
Improving Performance with the MySQL Performance Schema—Jesper Krogh, Oracle


10.15 am (2.5 hours long)

Focus on MySQL Replication—Sven Sandberg and Luis Soares, Oracle

1.15 pm

MySQL Utilities—Charles Bell, Oracle

2.45 pm

Performance Tuning with MySQL Enterprise Monitor—Mark Matthews, Oracle

4.15 pm

MySQL Security: Authentication and Audit—Jonathon Coombes, Oracle

Not registered yet? You can still save US$ 300 off the on-site fee! Attending Oracle openWorld or JavaOne? Add MySQL Connect to your registration for only US$100!

Register Now!

Wednesday Sep 26, 2012

MySQL Connect and OurSQL Interview

In the latest episode of our "Meet The MySQL Experts" podcast, I had the pleasure of being able to interview the hosts of the OurSQL podcast, Sheeri Cabral of Mozilla and Gerry Narvaja of Tokutek, about the upcoming MySQL Connect Conference.  Enjoy the podcast !

MySQL Connect Blog posts:

You can check out the full program here as well as in the September edition of the MySQL newsletter.

Not registered yet? You can still save US$ 300 over the on-site fee – Register Now!

MySQL Connect Starting in 3 Days - New Keynote Announced

We're very pleased to announce a new keynote that will take place on Saturday morning at 10.00 am:

"Community Perspective - Why Upgrade to MySQL 5.6"

Sarah Novotny will lead a lively panel discussion with several MySQL Community members. They will share their opinions and debate about the new MySQL Database features they’re excited about.

Moderator: Sarah Novotny, CIO, Meteor Entertainment


Sheeri Cabral, Database Admin/Architect, Mozilla

Giuseppe Maxia, QA Director, Continuent

Domas Mituzas, Database Performance Team, Facebook

Mark Leith, Software Development Senior Manager, Oracle

This new keynote will follow the State of the Dolphin address by Oracle's Chief Corporate Architect Edward Screven and VP of MySQL Engineering Tomas Ulin. An exciting kick-off for MySQL Connect!

Not registered yet? You can still save US$ 300 off the on-site fee – Register Now!

Tuesday Sep 25, 2012

MySQL Connect in 4 Days - Sessions From Users and Customers

Let’s review today the conference sessions where users and customers will describe their use of MySQL as well as best practices.

Remember you can plan your schedule with Schedule Builder.

Saturday, 11.30 am, Room Golden Gate 7:

MySQL and Hadoop—Chris Schneider,

Saturday, 1.00 pm, Room Golden Gate 7:

Thriving in a MySQL Replicated World—Ed Presz and Andrew Yee, Ticketmaster

Saturday, 1.00 pm, Room Golden Gate 8:

Rick’s RoTs (Rules of Thumb)—Rick James, Yahoo!

Saturday, 2.30 pm, Room Golden Gate 3:

Scaling Pinterest—Yashwanth Nelapati and Evrhet Milam, Pinterest

Saturday, 4.00 pm, Room Golden Gate 3:

MySQL Pool Scanner: An Automated Service for Host Management—Levi Junkert, Facebook

Sunday, 10.15 am, Room Golden Gate 3:

Big Data Is a Big Scam (Most of the Time)—Daniel Austin, PayPal

Sunday, 11.45 am, Room Golden Gate 3:

MySQL at Twitter: Development and Deployment—Jeremy Cole and Davi Arnaut, Twitter

Sunday, 1.15 pm, Room Golden Gate 3:

CERN’s MySQL-as-a-Service Deployment with Oracle VM: Empowering Users—Dawid Wojcik and Eric Grancher, DBA, CERN

Sunday, 2.45 pm, Room Golden Gate 3:

Database Scaling at Mozilla—Sheeri Cabral, Mozilla

Sunday, 5.45 pm, Room Golden Gate 4:

MySQL Cluster Carrier Grade Edition @ El Chavo, Latin America’s #1 Facebook Game—Carlos Morales, Playful Play

You can check out the full program here as well as in the September edition of the MySQL newsletter.

Not registered yet? You can still save US$ 300 over the on-site fee – Register Now!

Monday Sep 24, 2012

MySQL Connect in Only 5 Days – Some Fun Stuff!

We’ve recently blogged about the various MySQL Connect sessions focused on MySQL Cluster, InnoDB, the MySQL Optimizer and MySQL Replication. But we also wanted to draw your attention to some great opportunities to network and have fun! That’s also part of what makes a good conference...

MySQL Connect Reception

San Francisco Hilton - Continental Ballroom

6:30 p.m.–8:30 p.m.

A great opportunity to network with Oracle’s MySQL engineers, partners having a booth in the exhibition hall and just about everyone at MySQL Connect. Long time MySQL users will see many familiar faces, and new users will be able to build valuable relationships. A must attend reception for sure!

Taylor Street Open House

7:00 p.m.–9:00 p.m.

After two intense days at MySQL Connect, you’ll get the chance to relax and continue networking at the Taylor Street Café Open House on Sunday evening. Perhaps recharging batteries for a full week at Oracle OpenWorld…

The Oracle OpenWorld Music Festival

Starting on Sunday eve and running through the entire duration of Oracle OpenWorld, the first Oracle OpenWorld Musical Festival features some of today’s breakthrough musicians. It’s five nights of back-to-back performances in the heart of San Francisco. Registered Oracle conference attendees get free admission, so remember your badge when you head to a show. More information here.

You can check out the full MySQL Connect program here as well as in the September edition of the MySQL newsletter.

Not registered yet? You can still save US$ 300 over the on-site fee – Register Now!

Friday Sep 21, 2012

MySQL Connect 8 Days Away - Replication Sessions

Following on from my post about MySQL Cluster sessions at the forthcoming Connect conference, its now the turn of MySQL Replication - another technology at the heart of scaling and high availability for MySQL.

Unless you've only just returned from a 6-month alien abduction, you will know that MySQL 5.6 includes the largest set of replication enhancements ever packaged into a single new release:

- Global Transaction IDs + HA utilities for self-healing cluster..(yes both automatic failover and manual switchover available!)

- Crash-safe slaves and binlog

- Binlog Group Commit and Multi-Threaded Slaves for high performance

- Replication Event Checksums and Time-Delayed replication

- and many more

There are a number of sessions dedicated to learn more about these important new enhancements, delivered by the same engineers who developed them. Here is a summary

Saturday 29th, 13.00

Replication Tips and Tricks, Mats Kindahl

In this session, the developers of MySQL Replication present a bag of useful tips and tricks related to the MySQL 5.5 GA and MySQL 5.6 development milestone releases, including multisource replication, using logs for auditing, handling filtering, examining the binary log, using relay slaves, splitting the replication stream, and handling failover.

Saturday 29th, 17.30

Enabling the New Generation of Web and Cloud Services with MySQL 5.6 Replication, Lars Thalmann

This session showcases the new replication features, including

• High performance (group commit, multithreaded slave)

• High availability (crash-safe slaves, failover utilities)

• Flexibility and usability (global transaction identifiers, annotated row-based replication [RBR])

• Data integrity (event checksums)

Saturday 29th, 1900

MySQL Replication Birds of a Feather

In this session, the MySQL Replication engineers discuss all the goodies, including global transaction identifiers (GTIDs) with autofailover; multithreaded, crash-safe slaves; checksums; and more. The team discusses the design behind these enhancements and how to get started with them. You will get the opportunity to present your feedback on how these can be further enhanced and can share any additional replication requirements you have to further scale your critical MySQL-based workloads.

Sunday 30th, 10.15

Hands-On Lab, MySQL Replication, Luis Soares and Sven Sandberg

But how do you get started, how does it work, and what are the best practices and tools? During this hands-on lab, you will learn how to get started with replication, how it works, architecture, replication prerequisites, setting up a simple topology, and advanced replication configurations. The session also covers some of the new features in the MySQL 5.6 development milestone releases.

Sunday 30th, 13.15

Hands-On Lab, MySQL Utilities, Chuck Bell

Would you like to learn how to more effectively manage a host of MySQL servers and manage high-availability features such as replication? This hands-on lab addresses these areas and more. Participants will get familiar with all of the MySQL utilities, using each of them with a variety of options to configure and manage MySQL servers.

Sunday 30th, 14.45

Eliminating Downtime with MySQL Replication, Luis Soares

The presentation takes a deep dive into new replication features such as global transaction identifiers and crash-safe slaves. It also showcases a range of Python utilities that, combined with the Release 5.6 feature set, results in a self-healing data infrastructure. By the end of the session, attendees will be familiar with the new high-availability features in the whole MySQL 5.6 release and how to make use of them to protect and grow their business.

Sunday 30th, 17.45

Scaling for the Web and the Cloud with MySQL Replication, Luis Soares

In a Replication topology, high performance directly translates into improving read consistency from slaves and reducing the risk of data loss if a master fails. MySQL 5.6 introduces several new replication features to enhance performance. In this session, you will learn about these new features, how they work, and how you can leverage them in your applications. In addition, you will learn about some other best practices that can be used to improve performance.

So how can you make sure you don't miss out - the good news is that registration is still open ;-)

And just to whet your appetite, listen to the On-Demand webinar that presents an overview of MySQL 5.6 Replication.  

Thursday Sep 20, 2012

MySQL Connect 9 Days Away – Optimizer Sessions

Following my previous blog post focusing on InnoDB talks at MySQL Connect, let us review today the sessions focusing on the MySQL Optimizer:

  • Saturday, 11.30 am, Room Golden Gate 6:

MySQL Optimizer Overview—Olav Sanstå, Oracle

The goal of MySQL optimizer is to take a SQL query as input and produce an optimal execution plan for the query. This session presents an overview of the main phases of the MySQL optimizer and the primary optimizations done to the query. These optimizations are based on a combination of logical transformations and cost-based decisions. Examples of optimization strategies the presentation covers are the main query transformations, the join optimizer, the data access selection strategies, and the range optimizer. For the cost-based optimizations, an overview of the cost model and the data used for doing the cost estimations is included.

  • Saturday, 1.00 pm, Room Golden Gate 6:

Overview of New Optimizer Features in MySQL 5.6—Manyi Lu, Oracle

Many optimizer features have been added into MySQL 5.6. This session provides an introduction to these great features. Multirange read, index condition pushdown, and batched key access will yield huge performance improvements on large data volumes. Structured explain, explain for update/delete/insert, and optimizer tracing will help users analyze and speed up queries. And last but not least, the session covers subquery optimizations in Release 5.6.

  • Saturday, 7.00 pm, Room Golden Gate 4:

BoF: Query Optimizations: What Is New and What Is Coming?

This BoF presents common techniques for query optimization, covers what is new in MySQL 5.6, and provides a discussion forum in which attendees can tell the MySQL optimizer team which optimizations they would like to see in the future.

  • Sunday, 1.15 pm, Room Golden Gate 8:

Query Performance Comparison of MySQL 5.5 and MySQL 5.6—Øystein Grøvlen, Oracle

MySQL Release 5.6 contains several improvements in the query optimizer that create improved performance for complex queries. This presentation looks at how MySQL 5.6 improves the performance of many of the queries in the DBT-3 benchmark. Based on the observed improvements, the presentation discusses what makes the specific queries perform better in Release 5.6. It describes the relevant new optimization techniques and gives examples of the types of queries that will benefit from these techniques.

  • Sunday, 4.15 pm, Room Golden Gate 4:

Powerful EXPLAIN in MySQL 5.6—Evgeny Potemkin, Oracle

The EXPLAIN command of MySQL has long been a very useful tool for understanding how MySQL will execute a query. Release 5.6 of the MySQL database offers several new additions that give more-detailed information about the query plan and make it easier to understand at the same time. This presentation gives an overview of new EXPLAIN features: structured EXPLAIN in JSON format, EXPLAIN for INSERT/UPDATE/DELETE, and optimizer tracing. Examples in the session give insights into how you can take advantage of the new features. They show how these features supplement and relate to each other and to classical EXPLAIN and how and why the MySQL server chooses a particular query plan.

You can check out the full program here as well as in the September edition of the MySQL newsletter.

Not registered yet? You can still save US$ 300 over the on-site fee – Register Now!

Wednesday Sep 19, 2012

MySQL Connect Only 10 Days Away - Focus on InnoDB Sessions

Time flies and MySQL Connect is only 10 days away!

You can check out the full program here as well as in the September edition of the MySQL newsletter.

Mat recently blogged about the MySQL Cluster sessions you’ll have the opportunity to attend, and below are those focused on InnoDB. Remember you can plan your schedule with Schedule Builder.

  • Saturday, 1.00 pm, Room Golden Gate 3:

10 Things You Should Know About InnoDB—Calvin Sun, Oracle

InnoDB is the default storage engine for Oracle’s MySQL as of MySQL Release 5.5. It provides the standard ACID-compliant transactions, row-level locking, multiversion concurrency control, and referential integrity. InnoDB also implements several innovative technologies to improve its performance and reliability. This presentation gives a brief history of InnoDB; its main features; and some recent enhancements for better performance, scalability, and availability.

  • Saturday, 5.30 pm, Room Golden Gate 4:

Demystified MySQL/InnoDB Performance Tuning—Dimitri Kravtchuk, Oracle

This session covers performance tuning with MySQL and the InnoDB storage engine for MySQL and explains the main improvements made in MySQL Release 5.5 and Release 5.6. Which setting for which workload? Which value will be better for my system? How can I avoid potential bottlenecks from the beginning? Do I need a purge thread? Is it true that InnoDB doesn't need thread concurrency anymore? These and many other questions are asked by DBAs and developers. Things are changing quickly and constantly, and there is no “silver bullet.” But understanding the configuration setting’s impact is already a huge step in performance improvement. Bring your ideas and problems to share them with others—the discussion is open, just moderated by a speaker.

  • Sunday, 10.15 am, Room Golden Gate 4:

Better Availability with InnoDB Online Operations—Calvin Sun, Oracle

Many top Web properties rely on Oracle’s MySQL as a critical piece of infrastructure for serving millions of users. Database availability has become increasingly important. One way to enhance availability is to give users full access to the database during data definition language (DDL) operations. The online DDL operations in recent MySQL releases offer users the flexibility to perform schema changes while having full access to the database—that is, with minimal delay of operations on a table and without rebuilding the entire table. These enhancements provide better responsiveness and availability in busy production environments. This session covers these improvements in the InnoDB storage engine for MySQL for online DDL operations such as add index, drop foreign key, and rename column.

  • Sunday, 11.45 am, Room Golden Gate 7:

Developing High-Throughput Services with NoSQL APIs to InnoDB and MySQL Cluster—Andrew Morgan and John Duncan, Oracle

Ever-increasing performance demands of Web-based services have generated significant interest in providing NoSQL access methods to MySQL (MySQL Cluster and the InnoDB storage engine of MySQL), enabling users to maintain all the advantages of their existing relational databases while providing blazing-fast performance for simple queries. Get the best of both worlds: persistence; consistency; rich SQL queries; high availability; scalability; and simple, flexible APIs and schemas for agile development. This session describes the memcached connectors and examines some use cases for how MySQL and memcached fit together in application architectures. It does the same for the newest MySQL Cluster native connector, an easy-to-use, fully asynchronous connector for Node.js.

  • Sunday, 1.15 pm, Room Golden Gate 4:

InnoDB Performance Tuning—Inaam Rana, Oracle

The InnoDB storage engine has always been highly efficient and includes many unique architectural elements to ensure high performance and scalability. In MySQL 5.5 and MySQL 5.6, InnoDB includes many new features that take better advantage of recent advances in operating systems and hardware platforms than previous releases did. This session describes unique InnoDB architectural elements for performance, new features, and how to tune InnoDB to achieve better performance.

  • Sunday, 4.15 pm, Room Golden Gate 3:

InnoDB Compression for OLTP—Nizameddin Ordulu, Facebook and Inaam Rana, Oracle

Data compression is an important capability of the InnoDB storage engine for Oracle’s MySQL. Compressed tables reduce the size of the database on disk, resulting in fewer reads and writes and better throughput by reducing the I/O workload. Facebook pushes the limit of InnoDB compression and has made several enhancements to InnoDB, making this technology ready for online transaction processing (OLTP). In this session, you will learn the fundamentals of InnoDB compression. You will also learn the enhancements the Facebook team has made to improve InnoDB compression, such as reducing compression failures, not logging compressed page images, and allowing changes of compression level.

Not registered yet? You can still save US$ 300 over the on-site feeRegister Now!

Monday Sep 17, 2012

The NEW MySQL for Developers Course

Just Released - The new MySQL for Developers training course. 

This 5 day course covers everything a developer needs to know when planning, designing and implementing applications using MySQL, with realistic examples using languages such as Java and PHP. This course gives an in-depth coverage of statements that access and modify data, and shows the student how to design and create other MySQL objects such as triggers, views, and stored procedures.

You can take this course:

  • From your desk as a live virtual offering. There are over 800 events on the schedule so you should find one in a timezone near you. The virtual events are also delivered in many languages including English, German, Korean, Latin American Spanish, ...
  • In a classroom. Here is a sample of events on the schedule:


 Location  Date  Delivery Language
 Prague, Czech Republic
8 October 2012
 Warsaw, Poland
5 November 2012
 Wien, Austria
 12 November 2012
 London, England
15 October 2012
 Bern, Switzerland
 11 April 2013
 Zurich, Switzerland
14 November 2012
 Milan, Italy
19 November 2012
 Rome, Italy
 15 October 2012
 Gummersbach, Germany
 11 February 2013
 Hamburg, Germany
 12 November 2012
Munich, Germany
 10 June 2013
 Lisbon, Portugal
26 November 2012
European Portuguese
 Porto, Portugal
18 February 2013
European Portuguese
 Nairobi, Kenya  19 November 2012
 Madrid, Spain
 10 December 2012
Petaling Jaya, Malaysia
 15 October 2012
 Bangkok, Thailand
 29 October 2012

For further information on the Authentic MySQL Curriculum, to register for an event or express interest in an additional event, go to

Wednesday Sep 12, 2012

MySQL Connect: What to Expect From the Wondrous Land of MySQL Cluster

The MySQL Connect conference is only a couple of weeks away, with MySQL engineers, support teams, consultants and community aces busy putting the final touches to their talks.

There will be many exciting new announcements and sharing of best practices at the conference, covering the range of MySQL technologies.

MySQL Cluster will a big part of this, so I wanted to share some key sessions for those of you who plan on attending, as well as some resources for those who are not lucky enough to be able to make the trip, but who can't afford to miss the key news. Of course, this is no substitute to actually being there….and the good news is that registration is still open ;-)


Whats New in MySQL Cluster Saturday 29th, 1300-1400, in Golden Gate room 5.                                                                                        Bernd Ocklin, director of MySQL Cluster development, and myself will be taking a look at what follows the latest MySQL Cluster 7.2 release. I don't want to give to much away - lets just say its not often you can add powerful new functionality to a product while at the same time making life radically simpler for its users.

For those not making it to the Conference, a live webinar repeating the talk is scheduled for Thursday 25th October at 09.00 pacific time. Hold the date, registration will be open for that soon and published to our MySQL Webinars page

Best Practices

Getting Started with MySQL Cluster, Hands-On Lab Saturday 29th, 1600-1700, in Plaza Room A.                                                              Santo Leto, one of our lead MySQL Cluster support engineers, regularly works with users new to MySQL Cluster, assisting them in installation, configuration, scaling, etc. In this lab, Santo will share best-practices in getting started.

Delivering Breakthrough Performance with MySQL Cluster Saturday 29th, 1730-1830, in Golden Gate room 5.

Frazer Clement, lead MySQL Cluster software engineer, will demonstrate how to translate the awesome Cluster benchmarks (remember 1 BILLION UPDATEs per minute ?!) into real-world performance.

You can also get some best practices from our new MySQL Cluster performance guide 

MySQL Cluster BoF Saturday 29th, 1900-2000, room Golden Gate 5.                                                                                                           Come and get a demonstration of new tools for the installation and configuration of MySQL Cluster, and spend time with the engineering team discussing any questions or issues you may have.

Developing High-Throughput Services with NoSQL APIs to InnoDB and MySQL Cluster Sunday 30th, 1145 - 1245, in Golden Gate room 7.  

In this session, JD Duncan and Andrew Morgan will present how to get started with both Memcached and new NoSQL APIs.

JD and I recently ran a webinar demonstrating how to build simple Twitter-like services with Memcached and MySQL Cluster. The replay is available for download

Case Studies:

MySQL Cluster @ El Chavo, Latin America’s #1 Facebook Game Sunday 30th, 1745 - 1845, in Golden Gate room 4.                             Playful Play deployed MySQL Cluster CGE to power their market leading social game. This session will discuss the challenges they faced, why they selected MySQL Cluster and their experiences to date.

You can read more about Playful Play and MySQL Cluster here 

A Journey into NoSQLand: MySQL’s NoSQL Implementation Sunday 30th, 1345 - 1445, in Golden Gate room 4.                                          Lig Turmelle, web DBA at Kaplan Professional and esteemed Oracle Ace, will discuss her experiences working with the NoSQL interfaces for both MySQL Cluster and InnoDB

Evaluating MySQL HA Alternatives Saturday 29th, 1430-1530, room Golden Gate 5                                                                                   Henrik Ingo, former member of the MySQL sales engineering team, will provide an overview of various HA technologies for MySQL, starting with replication, progressing to InnoDB, Galera and MySQL Cluster

What about the other stuff?

Of course MySQL Connect has much, much more than MySQL Cluster. There will be lots on replication (which I'll blog about soon), MySQL 5.6, InnoDB, cloud, etc, etc. Take a look at the full Content Catalog to see more.

If you are attending, I hope to see you at one of the Cluster sessions...and remember, registration is still open

Monday Sep 10, 2012

MySQL for Beginners Training-on-Demand First Hand Insight

The MySQL for Beginners course is THE course to get you started with MySQL providing you a solid foundation in relational databases using MySQL as a learning tool. Oracle University recently released the Training-on-Demand option for this course. 

Ben Krug from the MySQL product team is trying out the MySQL for Beginners Training-on-Demand course and reporting on his experience. You can follow Ben on MySQL Support Blogs.

The MySQL for Beginners course is available as:

  • Training-on-Demand: Follow streaming video of instructor delivery and perform hands-on exercises as your own pace. You can start training with 24 hours of purchase.
  • Live-Virtual: Attend a live-instructor led class from your own desk. Hundreds of events on the schedule across timezones.
  • In-Class: Travel to an education center to attend this instructor-led class. Some events on the schedule below:



 Location  Date  Delivery Language
 Warsaw, Poland
 24 September 2012
 Dublin, Ireland
 15 October 2012
 London, United Kingdom
 11 September 2012
 Rome, Italy
 5 November 2012
 Hamburg, Germany
 3 December 2012
 Lisbon, Portugal
 5 November 2012
 European Portugese
 Amsterdam, Netherlands
 10 December 2012
 Nieuwegein, Netherlands
 18 February 2013
 Nairobi, Kenya  12 November 2012
 Barcelona, Spain
 5 November 2012
 Madrid, Spain
 8 January 2013
 Latvia, Riga
 12 November 2012
 Petaling Jaya, Malaysia
 22 October 2012
 Ottawa, Toronto and Montreal Canada
 17 December 2012
 Sao Paulo, Brazil
 11 September 2012
 Brazilian Portugese
 Sao Paulo, Brazil
 5 November 2012
 Brazilian Portugese


 For more information on the Authentic MySQL Curriculum, go to the Oracle University Portal -


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




« September 2012 »