Showing entries 1051 to 1060 of 1184
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: sql (reset)
SQL parser in rage(l)

For the mysql-proxy I'm exploring several ways to write a small SQL parser for the internal commands. As I want to use basic SQL to modify the config and the internal operations I need a parser. Some time ago I used lemon which is used in sqlite3, which is easier to use than yacc, but you still have to write the lexer/tokenizer.

This time I looked into ragel which is a state-machine compiler.

Time get rid of code like this:

....
} else if (0 == g_ascii_strncasecmp(s->str + NET_HEADER_SIZE + 1, 
     C("update proxy_config set value=0 where option=\"proxy.profiling\""))) {
....

Ragel is a bit different than lex/yacc. Ragel combines the two into one and builds a full state-machine for the input stream. Just one file, one state-machine for the parser and lexer.

%%{
  machine sql;

  SELECT = /SELECT/i;
  FROM   = /FROM/i;
  WHERE  = …
[Read more]
MySQL Table Sync 0.9.3 released

This release of MySQL Table Sync adds the ability to sync only part of a table, adds minor new functionality, and fixes a bug that could crash the tool.

MySQL Table Checksum 1.1.5 released

MySQL Table Checksum 1.1.5 adds a some useful features and fixes a couple of bugs. Now you can checksum tables in chunks, and there is an option to pause between chunks as well. This has already helped me recover a very large table that got out of sync on the slaves, and many of you have also requested this feature.

How fast is MySQL Table Checksum?

A few people have asked me how fast MySQL Table Checksum is. As with so many other things, it depends. This article shows how long it takes to checksum real data on a production server I help manage, which might give you a rough idea of how long it'll take on your servers.

How to eliminate temporary tables in MySQL

I've written before about how to make MySQL replication reliable. One thing I think you need to do to make statement-based replication reliable is eliminate temporary tables. I found an elegant way to replace temporary tables with real tables in the systems I maintain. This article explains how.

MySQL Find 0.9.0 released

If you've used the UNIX find command for more than a trivial find-and-print, you know how powerful it is; it's almost a miniature programming environment to find and manipulate files and directories. What if you could do the same thing with MySQL tables and databases? That was the inspiration for writing this tool. I was about to write several other tools to do some MySQL administrative jobs when I realized I could generalize and make something much more useful and powerful.

MySQL Table Checksum 1.1.0 released

MySQL Table Checksum 1.1.0 adds many improvements, but the most important is a new way to ensure slaves have the same data as their master. Instead of checksumming the slave and the master, it can now insert the checksum results directly on the master via an INSERT.. SELECT statement. This statement will replicate to the slave, where a simple query can find tables that differ from the master. This makes a consistent, lock-free checksum trivially easy.

There are also many other feature improvements and bug fixes, compatibility with MySQL 3.23.2 through 6.0-alpha, and finally I've gotten the documentation finished to my satisfaction.

Slides for the innotop workshop at MySQL Conference and Expo 2007

The slides for my innotop presentation at the recent MySQL Conference have been posted, along with other presenter's slides, on the conference presentations page. Love that stock photography!


innotop 1.4.2 released

This release of the innotop MySQL and InnoDB monitor is a major upgrade in terms of functionality, code quality, and interface consistency. It is the result of me working for over a month to get innotop into shape for the recent MySQL Conference and Expo. This article is a summary of the changes and a look at what's coming next.

MySQL Conference and Expo 2007 Audio

I recorded many of the sessions I attended at the conference. You can download the audio files in Ogg Vorbis format from this article. These files will not stay up forever -- I will probably remove them after a few weeks.

Showing entries 1051 to 1060 of 1184
« 10 Newer Entries | 10 Older Entries »