// author archive

Randy

Randy has written 39 posts for @randymelder

iOS project opportunities

Lately I’ve been mulling what to do next. I’ve got a Mac desktop app idea that would be really helpful to me. I’ve also got an iPhone app idea that I want to do. Then again, I really like money and there’s gigs out there I could get into. Nonetheless, I’m really wanting to stop [...]

MySQL Insert On Duplicate Update Madness

you may need to perform an INSERT INTO SELECT FROM statement. Often when you do this, you’ll run into duplicate key errors. To overcome this, you’ll need to add ON DUPLICATE KEY UPDATE syntax to the end of your insert.

MySQL Best Practice: Forget ALTER, use RENAME instead

MySQL is notorious for a few bummer scenarios. One of them is when you have a table with a couple hundred thousand rows or more and an indexed column or two, and you’ve been asked to add a column to meet a data model requirement. You know this will cause an outage or at least [...]

Creating a Date Dimension Stored Procedure

Our data warehouse was getting pretty big. In fact, it was it was getting into the hundreds of gigabytes of fact data. We started looking for ways to save hard drive space. It became apparent that storing redundant varchars, datetimes, enums and other large column types was unnecessary and causing the scale constraints. Part of [...]

Sysbench for MySQL Burn-In Testing

The reason for my last post about getting Sysbench installed on OS X, was that I had a chore to burn-in four MySQL hosts. They are currently replicating which is normal behavior for this group. I wanted to add some stress testing. Here is the script I created for his purpose. You can modify the [...]

How to install Sysbench on OS X

Before I start this post, I want to thank Alexey Kopytov for his assistance. Alexey, you’re a cool guy. Also, for reference sake, I’m running Mac OS X 10.6.4 and installed mysql-5.5.6-rc-osx10.6-x86.dmg Sysbench is a tool for MySQL DBAs to performance test or burn-in installations. I like to use it as a sanity check for [...]

ANSI C++ MySQL Client Wrapper Class

So as you can imagine by the title, I was recently tasked with working on a command line project for MySQL. I wanted to be able to reuse whatever I made, so that meant creating a down and dirty wrapper class for some of the MySQL C API functions. This is my start. Another requirement [...]

CGI Hit Counter

C++ Hit Counter, 1.0. Non-Object Oriented. Pretty light weight. // // HitCounter // @author Randy Melder // @version 1.0 // #include <iostream> #include <fstream> using namespace std; // file name const char *filename = “/tmp/hits.bin”; // quantity of hits struct Hits { long unsigned num_hits; }; void readHitsFile(const char *file_name, Hits *hits); void writeHitsFile(const char [...]

MySQL Partitioning and open_file_limit

We ran into an interesting problem recently and wanted to share the research. MySQL partitioning is a great way to improve performance in some circumstances, but it has a behavior that’s not widely noted. That is specifically with the MyISAM storage engine. MySQL seems to open two (2) file pointers for each table or partition [...]