Hello, blog! Long time without posting. Here I am again.
My attention was caught a few days ago by a contest posted by
Tokutek.
This is a company that makes a proprietary engine for MySQL. In
their contest, they claim that it takes 20 days
to insert 1 billion records into a InnoDB table, and that MyISAM
is not even up to the task. In their example, InnoDB inserts 404
rows per second and MyISAM died after a few days of inserting 93
rows per second.
It looks farfetched to me. Surely you can do better than
that.
Now, I don't have a quad 3.16Ghz Xeon server with 16GB RAM
available like the one used by Tokutek, and so I tried with a
modest quad 2.7Ghz AMD, 8GB RAM server. The problem is mostly the
same. Once your index becomes bigger than the available RAM, you
are in the glue. The only …
I knew something was wrong with my previous numbers, and there is an optimization that should improve it. So I was trying to test out the performance difference between a Waffle running localhost memcached and one with a remote memcached when I noticed something. I noticed that the disk IO, specifically the reads per second where higher then when the database was using Waffle then when I was not using a Waffle. Why this was odd was that both of these tests should have 100% of the data in the buffer pool or in remote memcached, so their should be limited read activity. Then it hit me, the memcached LRU is going to mess us up, let me explain:
The idea behind Waffle grid is when you hit the internal innodb LRU, put the data that was to be discarded into memcached, so the next time its needed you can retrieve it from memcached instead of disk.
Recently we discovered some tricks in schema synchronization process of MySQL databases. It’s about how MySQL creates views and tables with foreign keys. I’m going to explain them and give workarounds for dbForge Studio for MySQL users.
Let’s take a small database named crm_demo for an example.
CREATE DATABASE crm_demo; USE crm_demo; CREATE TABLE productcategories( CategoryID INT (11) NOT NULL DEFAULT 0, CategoryName VARCHAR (20) DEFAULT NULL, ParentCategory INT (11) DEFAULT NULL, PRIMARY KEY (CategoryID) ) ENGINE = INNODB; CREATE TABLE products( ProductID INT (11) NOT NULL DEFAULT 0, ProductName VARCHAR (50) NOT NULL, CategoryID INT (11) DEFAULT NULL, UnitName VARCHAR (20) DEFAULT NULL, UnitScale INT (5) DEFAULT NULL, InStock INT (11) DEFAULT NULL, Price DECIMAL (10, 0) DEFAULT NULL, DiscontinuedPrice DECIMAL (10, 0) DEFAULT NULL, PRIMARY KEY (ProductID), INDEX Product_Category USING BTREE …[Read more]
…is the title of this post written by Tim Bray a few days ago in which he outlined the directions he would like to see his employer take to improve its fortunes.
He also invited others to continue the thought process. Many have already done so (I’ll include the best in tomorrow’s CAOS Links post) and given my recent constructive criticism of Sun’s open source strategy I feel compelled to provide some answers as well as questions.
I’m sure there are lots of things Sun should be doing with relation to storage and servers and processors and client devices, but I’m going to stick to what I know. What would I do?
Light a fire under MySQL
When Sun announced its acquisition …
I like to say it that way ;-) but to clarify I'm doing in-house
training days in MySQL related topics for staff members of
various UQ departments. Nice people, interesting backgrounds and
ongoing projects, and it is of course in my home town Brisbane so
nice and easy after all the recent travels far & wide.
We're covering everything from SQL Fundamentals to DBA and
performance tuning foo, spread out over many days in the coming
months. Some of the days are newly developed, such as the SQL
Fundamentals module. So now it can be added to OQ's range of
available course topics!
People have asked me why I started out with intermediate and
somewhat advanced course days, and then extended that mainly
sideways and "backwards" (down to beginner level), and only a
little bit upward.
There's some very practical reasons for this. A beginner
obviously won't have been involved with MySQL before, and that
means they haven't been …
If you are in the US and eating your turkey and giving thanks, you can look forward to also giving thanks that version 5.1 of MySQL is now marked Generally Available for production use (GA). Yes after quite the number of releases, a plethora of bugs fixed, it is now there for use by all.
Not that that's stopped us from using it live on our production systems here at MySQL.com, check out this interview with Adam Donnison of MySQL.com's webteam where he details a bit of running 5.1 over the last year.
Congratulations to all the devs, it's been a long road, time to
enjoy the fruits of their labour, along with a bit of cranberry
sauce and some stuffing.
GlassFish and MySQL student contest winners
are announced!
Kolli Bharath from Dhirubhai Ambani Institute of Information and
Communication Technology, India (review, project) and Tomas Augusto
Muller, Universidade de Santa Cruz do Sul, Brazil
(review, …
As organizations become more global and virtual, there is an increased need to find better ways for people to collaborate and work together virtually. Today we have wikis, IRC, Skype, messaging and webcasts, but none of these methods do a good job of creating great interaction, collaboration, camaraderie, friendships as meeting in person. For example, I recently had to work with someone on
|
MySQL, the most popular open source database, releases today, November 27, 2008, its version 5.1 GA (General Availability). Downloads are available for all operating systems. Version 5.1 introduces several enhancements to the already rich set of features. Most notable are partitioning, row based replication, the event scheduler, a new … |
|
|
MySQL 5.1 finally RELEASED! MySQL 5.1 GA is now available for download. The time has come. MySQL 5.1 is ready for production use. In case you weren't paying attention while it it was still under development, here's what you get:
|