I started this as a response to Keith Murphy’s post at http://www.paragon-cs.com/wordpress/?p=54, but it
got long, so it deserves its own post. The basic context is
figuring out how not to cause duplicate information if a large
INSERT statement fails before finishing.
Firstly, the surefire way to make sure there are no duplicates if
you have a unique (or primary) key is to use INSERT IGNORE
INTO.
Secondly, I just experimented with adding an index to an InnoDB
table that had 1 million rows, and here’s what I got (please
note, this is one experience only, the plural of “anecdote” is
*not* “data”; also I did this in this particular order, so there
may have been caching taking place): More »
IDG LinuxWorld has done an article about the training for MySQL
that Open Query offers. It's called Database training now an Open Query.
Cool - well, of course I'd say that, I don't think that you
should feel it's cool too ;-) but such press coverage is always
good for a young company. Getting the word out further.
As most of you probably know now, Workbench supports two visualization modes: hardware & software based. Unfortunately automatic switcher was not in place by the time when beta version came out (will be fixed in a week), so some of you, who don’t have video subsystem supporting OpenGL v1.5, will encounter error on start when trying to run hardware based configuration. Note v1.5 is a minimum required version of OpenGL needed to start Workbench. You can get detailed information about your video subsystem using one of these tools: OpenGL-Extension-Viewer or GPU-Caps-Viewer. Both of them support export into xml file, so you can also easily attach your video configuration to your bug report when needed.
It has only been two days since I have announced the official Beta of Workbench and (after taking today off to do some snowboarding) I am amazed by the number of people who have already signed up for the Standard Edition Beta Testing Program.
But the more the better of course, so everybody who is interested in testing the SE and has not sent an email to workbench@mysql.com please do so. There are no conditions, and we will reward the best bug reporters.
One question was asked by several people and that is, how often are we going to release new Beta builds? We are trying to release a build of OSS Edition and SE every 2nd week and always have the most critical bugs reported fixed.
vmstat is a very useful tool, especially when you are doing performance tuning of an application like MySQL. The only problem with the output from vmstat is that it is rather non-visual. A simple solution is to import the output in a spreadsheet like Openoffice Calc and create a graph, but it is long and painful. Creating many such graphs is not fun at all.
Fortunately, in the Linux world, there are tools to generate graph nearly automatically. Here is my own set of tools to creates graphs from vmstat output. You need the gnuplot program and awk, which is on all Linux version.
The output of vmstat looks like this:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 164 48604 45136 4871464 0 0 94 111 4 7 1 0 98 0 0 0 2 164 48476 45188 4871552 0 0 35 15 1062 133 1 0 99 0 …[Read more]
Say what you want about GPLv3, but the update to the most popular open source software license continues to close loopholes that have been used to avoid sharing source code, patent protection and other freedoms that the authors intended. Still, we have yet to see whether this closes off any appeal of the GPL and even open source in general for vendors, developers and users.
This week brought the final release of the Affero GPLv3 (AGPLv3). Although the GPLv3 did not manage to cover software-as-a-service, also known as the ‘ASP loophole,’ the matter is addressed through GPLv3’s compatibility with AGPL. In its most recent release, the AGPLv3 goes beyond allowing for source code availability the same way software is delivered, whether via SaaS or other network or Web services model. It now requires …
[Read more]It recently came up that it would be helpful if we had a cheat sheet to find out the machine names for any given UNIX. I knew these off the top of my head but it would be great if people added more as comments.
HP/HP-UX: /bin/uname -i
IBM/AIX: /bin/uname -m
SGI/IRIX: /sbin/sysinfo -s
Sun/Solaris: /usr/ucb/hostid
When dealing with multicolumn indexes the order of the columns in the index definition is very important. Fpr example if you have such an index
INDEX (a,b,c)
and you issue a query such
... WHERE b>1000;
MySQL will not be able to use the index. In case ol multicolumn indexes MySQL will always use the left-most part of the index. So, the index will be used for example if the query would be:
... WHERE a>100 AND b>1000;
So, MySQL will use the index only for search conditions that involve the follwing columns:
- a ,b ,c
- a, b
- a
The mulitcolumn indexes are also useful in solving ORDER BY and
GROUP BY operations.
Let’s see the folliwing example.
Here is my customer table (for sake of simplicity it’s just a
subset of my real table).
corra@localhost> show create table customer\G …[Read more]
Avid readers of my blog know that I have been pondering how to best approach schema evolution. I ported the schema management from Metabase to PEAR::MDB2_Schema. I even gave a talk that admittedly only did a good job of defining the problem and solutions that all suffered from severe limitations. Now for the first time I am starting to feel somewhat good about an approach to migrations. I wrote a post to the Doctrine developers mailinglist detailing the key pieces that I want to add to Doctrine's migrations. The idea is to use the migrations approach made popular by …
[Read more]Table joins are fun and useful, but did you know that there are circumstances that a php loop will beat out table joins?For those of you who already know this, feel free to return to www.PlanetMySql.com. But for the rest of us, read on...The Setup (fictional, but mimics my production environment)I have two tables, employees and termination_info. Employees has 150,000 records and