| Showing entries 1 to 30 of 30 |
With the recent GA release of MySQL 5.6, there have been a lot of questions about where MariaDB stands with regards to MySQL 5.6. SkySQL will of course support both as Patrik explained in his recent blog post, but there are many questions about the technical differences. Rasmus from Monty Program gave a detailed view on MariaDB 10.0 here but I thought it would be beneficial to share a comparison table of the two. MariaDB recently released a benchmark including various versions of both MariaDB and MySQL (as did DmitriK from Oracle), but this post will
[Read more...]I used MySQL 5.5 for this purpose. Let us create the following tables t1 and t2 in the test database that is available by default. Even though the default storage engine in MySQL 5.5 is InnoDB, I explicitly specify it for clarity.
mysql> use test;
mysql>
Traditionally, the MySQL storage engine interface has taken a
minimalistic approach to data definition language. The only natively
supported operations were CREATE TABLE, DROP
TABLE and RENAME TABLE. Consider the following
example:
CREATE TABLE t(a INT); INSERT INTO t VALUES (1),(2),(3); CREATE INDEX a ON t(a); DROP TABLE t;
The CREATE INDEX statement would be executed roughly
as follows:
CREATE TABLE temp(a INT, INDEX(a)); INSERT INTO[Read more...]
In MySQL
5.6, we continued our development on InnoDB Memcached and completed a few
widely desirable features that make InnoDB Memcached a competitive feature in
more scenario. Notablely, they are
1) Support multiple table mapping
2) Added background thread to auto-commit long running transactions
3) Enhancement in binlog performance
Let’s go over each of these
features one by one. And in the last section, we will go over a couple of
internally performed performance tests.
In our earlier release, all InnoDB Memcached operations are mapped to a single InnoDB table. In the real life, user might want to use this InnoDB Memcached features on different tables. Thus being able to support access to different table at run time, and having different
[Read more...]MySQL 5.6 comes with significant improvements for the compression support inside InnoDB. The enhancements that we'll talk about in this piece are also a good example of community contributions. The work on these was conceived, implemented and contributed by the engineers at Facebook. Before we plunge into the details let us familiarize ourselves with some of the key concepts surrounding InnoDB compression.
Note: this article was originally published on http://blogs.innodb.com on April 16, 2012 by Yasufumi Kinoshita.
The performance of flush_list flushing of InnoDB decides the basic performance for modifying workloads. So, it is important to optimize the flush behavior. In this post we’ll consider how to optimize the neighbor-flushing behavior.
Factor 1: Characteristics of storage
Depending on the characteristics of your storage’s throughput for write IO, you can term your storage as either “write amount bound” or “write times bound”. The minimum unit of the InnoDB datafile is page size (16KB or less). And InnoDB attempts to combines them in a single IO up to 1 extent (1MB) maximum, if they are contiguous.
<one HDD>:
[Read more...]Note: this article was originally published on http://blogs.innodb.com on April 13, 2012 by Inaam Rana.
In MySQL labs release April 2012 we have reworked the flushing heuristics in InnoDB. In this post I’ll give an overview of what we have changed and the various configuration variables we have introduced to fine tune the flushing algorithm. If you are interested in finding out how our new flushing algorithm fares in benchmarks you can get these details in Dimitri’s well-explained blog here.
Flushing means writing dirty pages to disk. I have explained in some detail about
[Read more...]Note: this article was originally published on http://blogs.innodb.com on April 11, 2012 by Vasil Dimov.
After introducing InnoDB persistent statistics in MySQL 5.6, in this April Labs release we have dressed it up in a nice UI and refactored the internals a bit to make the code more elegant and straight-forward.
The persistent stats are now controlled globally and can also be overridden at table level, should any table require a different behavior.
The server global flag –innodb-stats-persistent (boolean) now controls whether all InnoDB tables use persistent statistics or not. Keep in mind that if a table is using persistent stats then its statistics
[Read more...]Note: this article was originally published on http://blogs.innodb.com on April 11, 2012 by Jimmy Yang.
In this April MySQL Lab release, we’ll provide you a more robust and release-ready InnoDB Memcached Engine with a few enhancements. The most notable addition is the SASL support, which gives users the capability to protect their MySQL database from unauthenticated access through memcached clients. In this blog, I will walk you through steps of getting this option enabled.
Background Info:
SASL stands for “Simple Authentication and Security Layer”, which is a
Standard for adding authentication support to connection-based
protocols. Memcached added SASL support starting its 1.4.3 release. And
here is a
Note: this article was originally published on http://blogs.innodb.com on April 11, 2012 by John Russell.
This feature is a continuation of the “Fast Index Creation” feature introduced in Fast Index Creation in the InnoDB Storage Engine. Now you can perform other kinds of DDL operations on InnoDB tables online:
that is, with minimal delay for operations on that table, and without
rebuilding the entire table. This enhancement improves responsiveness
and availability in busy production
Note: this article was originally published on http://blogs.innodb.com on April 10, 2012 by Sunny Bains.
The Problem
In the past, users were unable to take full advantage of the FLUSH TABLES WITH READ LOCK statement. InnoDB simply ignored the flush to disk part. If the table did not have any dirty pages in the InnoDB buffer that weren’t synced to disk (due to sheer luck) then it was safe to copy the .ibd file to another location. Also, the restore was not without its limitations and complications. The .ibd file could not be copied over to another server because InnoDB during import did not fix
[Read more...]Note: this article was originally published on http://blogs.innodb.com on April 10, 2012 by Kevin Lewis.
The April 2012 InnoDB labs release introduces a new feature in InnoDB that allows you to choose the location of specific tables. For example, you can place critical tables onto an SSD drive while leaving the system tablespace on a hard drive. Conversely, you can store you primary database files on an SSD and put a seldom used but very large archive or reference table on a larger cheaper hard drive.
Innodb now makes use of the following existing syntax in MySQL ;
CREATE TABLE . . . DATA DIRECTORY = ‘absolute path of data directory’;
CREATE TABLE . . . PARTITION . . . DATA DIRECTORY = ‘absolute path of data directory’;
[Read more...]Note: this article was originally published on http://blogs.innodb.com on Dec 20, 2011 by Sunny Bains.
The problem and its cause
There have been several complaints over the years about InnoDB’s inability to scale beyond 256 connections. One of the main issues behind this scalability bottleneck was the read view creation that is required for MVCC (Multi Version Concurrency Control) to work. When the user starts a transaction this is what InnoDB does under the hood:
Note: this article was originally published on http://blogs.innodb.com on Dec 20, 2011 by Jimmy Yang.
InnoDB full-text search (FTS) is finally available in MySQL 5.6.4 release. The feature has been on trial through MySQL’s summer lab release, thus we had several blogs covering the feature. In this blog, we will leave the “how to” part of the feature to those blogs, and focus on some important characteristics of this new feature, so you will have a better understanding when trying on the feature.
The InnoDB Full-text Index as an Inverted Index
When comes to the basic design, InnoDB takes a traditional way to implementation the full-text index, which is a so called “Inverted Index”. It composes of a set of auxiliary “index tables” that stores the
[Read more...]Note: this article was originally published on http://blogs.innodb.com on Dec 20, 2011 by Kevin Lewis.
In the 5.6.4 release it is now possible to create an InnoDB database with 4k or 8k page sizes in addition to the original 16k page size. Previously, it could be done by recompiling the engine with a different value for UNIV_PAGE_SIZE_SHIFT and UNIV_PAGE_SIZE. With this release, you can set –innodb-page-size=n when starting mysqld, or put innodb_page_size=n in the configuration file in the [mysqld] section where n can be 4k, 8k, 16k, or 4096, 8192, 16384.
The support of smaller page sizes may be useful for certain storage media such as SSDs. Performance results can vary depending on your data schema, record size, and read/write ratio. But this provides you more options to optimize your
[Read more...]Note: this article was originally published on http://blogs.innodb.com on Oct 3, 2011 by Jimmy Yang.
In our earlier Labs release, we presented a MySQL NoSQL solution through InnoDB Memcached Daemon Plugin (see earlier Calvin’s and my posts). That earlier release allows the Memcached Plugin directly interacting with InnoDB, completely bypassing MySQL optimizer and QP layers. It differs with another popular MySQL NoSQL solution, HandlerSocket, by skipping even the Handler API layer and directly access the InnoDB through InnoDB APIs. Thus, in theory, it would be simpler and more efficient.
However, there is one
[Read more...]
Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by John Russell.
The InnoDB full-text search capability is an exciting feature. The full-text search itself is generally useful to have in an RDBMS. If an application is using all InnoDB tables except for one that is used for full-text searches, now that last table can be switched to InnoDB. If putting the full-text data in a MyISAM table led to scalability problems, duplication, or a less-than-ideal schema design, now those issues can be addressed.
In this post, I’ll take you through some of the basics of setting up and querying an InnoDB FULLTEXT search index. I’ll leave the scalability and performance aspects to
Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by Sunny Bains.
InnoDB has had the thread concurrency management code for some years now. Most will be familiar with the three configuration variables associated with this feature:Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by Sunny Bains.
Introduction
The InnoDB UNDO entries reside in a special system table called the UNDO log. This log is made up of several segments. These segments are called rollback segments. A segment in InnoDB is similar to what a file would be in a file system,e.g., user tables and indexes are also stored as separate segments within the same tablespace, only their format is different. In that sense there is nothing special about InnoDB UNDO logs. This feature allows storing of the UNDO log across several tablespaces.
Purpose
UNDO logs contain the before image of modified records. There are two
[Read more...]Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by Vasil Dimov.
Are you running an InnoDB installation with a many-gigabytes buffer pool(s)? Does it take too long before it goes back to speed after a restart? If yes, then the following will be interesting to you.
In the latest MySQL 5.6 Labs release we have implemented an InnoDB buffer pool(s) dump and load to solve this problem.
The contents of the InnoDB buffer pool(s) can be saved on disk before MySQL is shut down and then read in after a restart so that the warm up time is drastically shortened – the buffer pool(s) go to the state they were before the server restart! The time needed for that is roughly the time needed to read data from disk that is about the size of the
[Read more...]Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by Jimmy Yang.
This Summer’s lab release includes an important feature of InnoDB – InnoDB Fulltext Search. This feature would greatly enhance InnoDB’s capability in Text search and retrieving. Since the feature is designed for our transactional storage engine, its underlying architecture design and implementation are completely different with those of MyISAM. So it is worth to give a brief technology review of this feature, familiarize users with some important concepts in the InnoDB FTS so that they can better utilize this feature.There are a few other posts on the subject. John Russell will give a brief tutorial on the InnoDB fulltext search command and syntax. I will also discuss some
[Read more...]Note: this article was originally published on http://blogs.innodb.com on July 25, 2011 by Jimmy Yang.
With this lab release, InnoDB now has its own Fulltext Search (FTS) support. People might wonder how different is this FTS comparing with that of MyISAM. From the usage standpoint, they seem very similar with no apparent difference. However, in the underlying FTS engine, the difference is huge, since two are built on different storage engines with totally different design. So in some aspect such as DML, it might be difficult to make it an apple to apple comparison. However, we do try to list and explain the difference, so to make it easier for user to understand our design and make the transition to use InnoDB FTS easier.The Design:
The most significant
[Read more...]I've been reworking the Creating a CRUD Application with PHP tutorials. The new version should be ready for 7.0 Beta 2 release. In the new version:
In the course of this work, two things have come to my attention. These are two things that you can help with.
So first, can anyone suggest a new title? We have one
[Read more...]I've been reworking the Creating a CRUD Application with PHP tutorials. The new version should be ready for 7.0 Beta 2 release. In the new version:
In the course of this work, two things have come to my attention. These are two things that you can help with.
So first, can anyone suggest a new title? We have one
[Read more...]I caught some of the keynotes and discussion at the Linux Foundation Collaboration Summit today, and was particularly interested in the panel discussion on open source and cloud computing. While we are used to hearing and talking about how important open source software is to cloud computing (open source giving to cloud computing), moderator John Mark Walker posed the question of whether cloud computing gives back? The discussion also rightfully focused on openness in cloud computing, how open source might or might not translate to cloud openness and the importance of data to be open as well.
The discussion also centered on some issues regarding open standards and how open is open
[Read more...]Since the time that I’ve been using MySQL I have filed quite a few bug reports. Some of these have been fixed and many of the bug reports are actually new feature requests. While working with MySQL Enterprise Monitor I’ve probably filed more feature requests than bug reports.
That’s fine of course and my opinion of what is needed in MySQL or Merlin is one thing, yours or the MySQL developers is something else. We all have our own needs and find things missing which would solve our specific problems.
If I have ten feature requests open and only one could be added to the software I’d also like to be able to say: this feature is the most important one for me.
However, it seems to me that there is no easy way in the mysql bug tracker at the moment to group together different types of new
[Read more...]Last spring, we added a feature that allows the user to see the progress of writes in a statement. Vadim liked it. In 2.2.0, in “show processlist”, we add progress information on reads.
Here is an example of what “show processlist” displays on an update:
mysql> show processlist \G *************************** 1. row *************************** Id: 1 User: root Host: localhost db: test Command: Query Time: 7 State: Queried about 1576008 rows, Updated about 197000 rows Info: update foo set a=9 where a=8
Here is an example of what “show processlist” displays on an insert that requires a query:
mysql> show processlist \G *************************** 1. row *************************** Id: 1 User: root[Read more...]
I’ve begun a MySQL features timeline which is a quick reference showing as of what version MySQL features were added, changed or removed. The manual tells us this, of course, but I wanted a quicker reference. The list is far from complete as there’s a huge number of features to cover. I’ll continue to improve it and help is appreciated. Send me a quick email saying “feature x added/removed/changed as of version y” and I’ll do the rest. — If someone has already done this, please give me the url so I don’t reinvent the wheel.
This Thursday (May 28th, 14:00 UTC), Lars Thalmann will give a MySQL University session on MySQL Replication: Walk-through of the new 5.1 and 6.0 features. (This session was originally scheduled for May 7th, but had to be put off due to technical problems. Apologies.)
Lars is leading the replication and backup teams at MySQL, so this is
one of the best opportunities to ask whatever questions you might have
about new replication features in MySQL.
For MySQL University sessions, point your browser to this page.
[Read more...]| Showing entries 1 to 30 of 30 |