« MySQL GUI Tools | Main | MySQL Cluster New Features and Roadmap »

April 19, 2005

Ticketmaster's MySQL Implementation

Listening to Ed Presz talk about Ticketmaster's use of MySQL at MySQL 2005. Ticketmaster has 9000 clients, 500 arenas, 500 amphitheaters, 150 sports teams, etc. Have sold as many as 500,000 tickets in a single day. This year's U2 tour was crazy. 11,000 tickets per minute, 135,000 tickets/hour for U2 tour.

All event information is stored in MySQL. Venue information, seating charts, delivery (Ticketfast, delivery options, parking upsells), artist, directions, etc. All branding (ie MLB) information is in MySQL.

Converted from SQL Server to MySQL in 2002. Had a lot of expertise with MySQL in CitySearch, a sister company. Have seen improved performance since they moved from SQL Server.

Moved from SQL Server to Oracle for the business transaction (credit card, address information).

Using Linux AS 3 and MySQL 4.0.18 and InnoDB except where they need full-text search. They do not use autoextend, would rather manually allocate than have the database take resources in doing it. The event data stored in MySQL is ~20G, around 200 tables. Rely heavily on replication, using master-master replication with different table sets in some small areas. Put InnoDB tables on both local disks and NetApp server, find little different in performance between the two.

Ed goes through a bunch of tricks in managing their MySQL installation. Ways to defrag an InnoDB table, alter tables etc.

Core ticketing is 28 VAX machines spread across the country. An application feeds the data from the core ticketing VAX machines to two primary MySQL databases which are replicated down to four regional slaves which each have four slaves, meaning that when you hit the ticketmaster site you may hit any one of sixteen databases boxes. I guess that means that in total, there are 22 databases in their setup.

The search box on Ticketmaster uses MyISAM full-text search. Replaced third-party product. The order of indexes matter when creating these. Poor performance from tables where indexes are. Search database runs on a separate box from the other data. Set ft_min_word_length=1 and ft_stopword_file=/dev/null to be able to find all bands.

Ticketmaster has four utitility scripts that give them infmormation on the status of their machines.

Posted by mike at April 19, 2005 7:01 PM