This is a small revision and will only be available through SVN. However, it is an important one to speak about as it solves a former issue when running the application on a screen smaller than 1024px wide. While most users may not have noticed this since they have larger monitors it has been noticed [...]
In my opinion, one of the best things that happened to Planet MySQL
lately, is Explain Extended, a blog by Alex Bolenok (also
known as Quassnoi on Stackoverflow).
I never had the pleasure of meeting Alex in person, but his
articles are always interesting and of high quality, and the SQL
wizardry he pulls off is downright inspiring. I really feel
humbled by the creativity of some of his solutions and his
apparent experience with multiple RDBMS products.
Alex' most recent post is about aggregation, and
finding a top 3 based on the aggregate:
In …
As soon as you update to the latest build (Help > Check for
updates), you will get a new menu item "More values" in the
"Quick filter" menu. This new submenu displays the 30 first
distinct values of the selected column, plus their frequency in
the selected table:
Thanks to Daniel for suggesting this feature!
I have an interesting problem, on a data migration project I'm currently working on. I'm importing a large amount of legacy data into Drupal, using the awesome Migrate module (and friends). Migrate is a great tool for the job, but one of its limitations is that it requires the legacy database tables to have non-composite integer primary keys. Unfortunately, most of the tables I'm working with have primary keys that are either composite (i.e. the key is a combination of two or more columns), or non-integer (i.e. strings), or both.
Table with composite primary key.
The simplest solution to this problem would be to add an auto-incrementing integer primary key column to the legacy tables. This would provide the primary key information that Migrate needs in order to do its mapping of legacy IDs to Drupal IDs. But this solution has a serious drawback. In my project, …
[Read more]I have an interesting problem, on a data migration project I'm currently working on. I'm importing a large amount of legacy data into Drupal, using the awesome Migrate module (and friends). Migrate is a great tool for the job, but one of its limitations is that it requires the legacy database tables to have non-composite integer primary keys. Unfortunately, most of the tables I'm working with have primary keys that are either composite (i.e. the key is a combination of two or more columns), or non-integer (i.e. strings), or both.
Table with composite primary key.
The simplest solution to this problem would be to add an auto-incrementing integer primary key column to the legacy tables. This would provide the primary key information that Migrate needs in order to do its mapping of legacy IDs to Drupal IDs. But this solution has a serious drawback. In my project, …
[Read more]Answering questions asked on the site.
Vlad Enache asks:
In MySQL I have a table called
meanings
with three columns:
person | word | meaning |
---|---|---|
1 | 1 | 4 |
1 | 2 | 19 |
1 | 2 | 7 |
1 | 3 | 5 |
word
has 16 possible values,
meaning
has 26.
A person assigns one or more meanings to each word. In the sample above, person 1 assigned two meanings to word 2.
…
[Read more]
This year at the O'Reilly MySQL User's Conference we will be doing
the first ever Ignite talk series!
What is Ignite?
It's a high-energy evening of 5-minute talks by people who have
an idea—and the guts to get onstage and share it. All talks are
exactly five minutes long, and Ignite presenters will be sharing
their personal and professional passions, using 20 slides that
auto-advance every 15 seconds.
Sound interesting?
So far we have Robin Schumacher talking about when you should be
using InfiniDB instead of general MySQL server. Monty
Widenius will be presenting the "The Full Monty, State of
MariaDB".
…
I’ve recently been migrating my wiki/documentation for Kontrollbase to Trac. For those that are not aware, Trac is a web-based documentation/wiki/Subversion tool that is used by countless number of software projects. Subversion, of course, is a software collaboration and code management repository that manages branches/tags/trunk files with revision control. It’s one of the most heavily used open-source code repositories available. Given that I use SVN (subversion) for all of my software applications and am now using Trac, the book “Managing Software Development with Trac and Subversion” by David J Murphy comes as a useful and great resource for integrating these two useful tools. …
[Read more]
Recently I needed the query stream hitting a very busy master.
Normally I would have been using the MySQL Proxy to collect
queries, but on a very busy machine the Proxy is as much of a
problem as it is part of the solution, so I chose a different
approach.
I had a SPAN port configured for the master, which is Ciscospeak
for a port on a switch which mirrors all traffic of one or more
other ports. I had an otherwise idle machine listening to the
SPAN port on a spare network card. That way it is possible to
collect traffic to and from the master without any interference
with the master.
On the listener box, I had tcpflow collecting data to my master (and only
traffic to, not from the master):
CODE:tcpflow -i eth1 dst master and port 3306
These tcpflow files now need to be processed into a …
A few weeks ago, we had a query optimization request from one of our customer.
The query was very simple like:
PLAIN TEXT CODE:
- SELECT * FROM `table` WHERE (col1='A'||col1='B') ORDER BY id DESC LIMIT 20 OFFSET 0
This column in the table is looks like this:
PLAIN TEXT CODE:
- `col1` enum('A','B','C','CD','DE','F','G','HI') default NULL
The table have 549252 rows and of course, there is an index on the col1. MySQL estimated the cardinality of that index as 87, though what was of course misleading as index cardinality in this case can't be over 9, as there is only 8(+ NULL) different possible values for this column.
PLAIN TEXT CODE:
- …