So a brand new version of Sphinx has come out. I’ve been using a beta version of 0.9.8 so I’ve been using most of the new features already but the list of new features and bug fixes is still pretty impressive. For those of you who don’t know, Sphinx is a MySQL full-text replacement for implementing search. And its hella fast.
mysql, programming
0.9.8, mysql, new, new release, new sphinx, sphinx
Working with Mysql a lot, I’ve come across a lot of resources for finding ways of improving Myql performance in relation to configurations, queries and importing/exporting data. Here’s a list of sources I use a lot:
MySQL Performance Blog: This is my favorite Mysql site and was absolutely indispensable when first starting out with Mysql. They pretty much cover any Mysql related topic.
MySQL Reference: The actual reference site is a must have. It’s fairly thorough and covers everything in simple detail.
Travis’s Mysql Postings: He’s the most knowledgeable database person I know and is usually the first person I go to with anything Mysql.
Jay’s Mysql Postings: He’s the 2nd most knowledgeable database person I know and he’s always spot-on with any tips he gives.
The rest are just a list of sites/pages that I find useful for whenever I need something specific:
Speeding up InnoDB Imports
10 Performance Tips
84 Performance Tips
Google Search
mysql, web
innodb, mysql, mysql tips, performance, tips
On a daily basis for the last year, I use jquery at work (Grooveshark) to handle different DOM and animation methods. I started out using jquery because I was new to the browser world and Javascript in particular. Jquery made it really easy to come right in and start creating usable modules.
As I got more comfortable with javascript, I started moving away from jquery and building my own methods or extending jquery. One problem with browsers in general is accessing the DOM and any javascript heavy site will always go over this bump. At Grooveshark, because everything is so heavily based on accessing/modifying song/artist/album information, we already have a unique identifier from the MySQL database. By using a contextual name based system, we can get really fast DOM lookups for very cheap:
HTML:
<table class="songs">
<tr id="song_123"><td>A Song</td></tr>
<tr id="song_456"><td>My Song</td></tr>
... MORE SONGS ...
<tr id="song_789><td>Your Song</td></tr>
</table>
Javascript:
function song_click() {
$("table.songs tr").click(function() {
var domid = $(this).attr("id");
var songid = domid.split("_")[1];
// possibilities endless...
}
}
This is not exactly what we do (currently using inline event handler – I know, not very web2.0-ish of me), but this is the basic idea. The html elements themselves contain a reference to the data they represent so whenever a user interacts with that element, it’s very easy to identify what it is.
Grooveshark, jquery, mysql, programming
dom, javascript, jquery, mysql, programming