MySQL Error 28: Temp Tables And Running Out of Disk Space

Bam: MySQL error 28, and suddenly my queries came to a stop.
Error 28 is about disk space, usually the disk space for temp tables. The first thing to do is figure out what filesystem(s) the tables are on. SHOW VARIABLES LIKE “%dir%” will return a number of results, but the ones that matter are tmpdir [...]

MySQL Fulltext Tips

Peter Gulutzan, author of SQL Performance Tuning, writes in The Full-Text Stuff That We Didn’t Put In The Manual about the particulars of word boundaries, index structure, boolean searching, exact phrase searching, and stopwords, as well as offering a few articles for further reading (Ian Gilfillan’s “Using Fulltext Index in MySQL”, Sergei Golubchik’s “MySQL Fulltext [...]

Things I Need To Incorporate Into Various Projects

memcached, a “highly effective caching daemon, …designed to decrease database load in dynamic web applications,” and the related PHP functions
pspell PHP functions related to aspell and this pspell overview from Zend
http_build_query, duh?
current connected mysql threads * unix load average = system busy; reduce operations when $system_busy > $x

development, memcached, mysql, [...]

Catching Bugs Before They Catch You

I got itchy about magic quotes the other day because it’s the cause (through a fairly long cascade of errors) of some performance problems and runaways I’ve been seeing lately (pictured above).
But I deserve most of the blame for allowing a query like this to run at all:

SELECT type, data, count(*) AS hits
FROM wpopac_WPopac_bibs_atsk
WHERE data [...]

T2000 Unboxed And Online

My Sun T2000 is here, and with Cliff’s help it’s now patched, configured, and online. (Aside: what’s a Sun Happy Meal?)
I’ll second Jon’s assessment that Sun really should put some reasonable cable adapters in the box, as the the bundle of adapters necessary to make a null modem connection to the box is ridiculously out [...]

Solaris + AMP, ASAP

A Solaris sysadmin I’m not. But now that I’ve finally got the Sun T2000 server I begged for a while back, I’ve got to ramp it up right quick.
The first task is to get a, um, LAMP environment up and running (SAMP?…oh, Sun wants us to call it AMPS). A bit of Googling turned up [...]

More bsuite Hacking

Update: bugfix release b2v6 available.
Some conversations with Chow Kah Soon, who’s site is full of diversions from work , finally convinced encouraged me to solve some small problems that were giving him big trouble. Chow Kah Soon is in the lucky, but rare, position of having over 20,000 unique daily visitors to his site, [...]

MySQL’s Slow Query Log

Zach suggested it last week, but it’s only now that I’ve gotten around to setting up MySQL’s slow query log.
It’s easy enough, you’ve just got to put a couple lines like this in your my.cnf (which is in /etc on my server):
log-slow-queries = /var/log/mysql/mysql-slow.log
long_query_time = 10
This should get most people running, but this story in [...]

Performance Optimization

A couple notes from the past few days of tweaks and fixes:

Hyper-threading has a huge effect on LAMP performance. 
From now on, I’ll have bad dreams about running MySQL without Query Caching in the way that I used to have nightmares about going to school wearing only my underwear. The difference is that big. 
WordPress rocks, but [...]

Plesk Bites

I picked Plesk over CPanel as my server control panel because it was cheaper, looked better, and seemed to have all the features I wanted. What I didn’t know was that it came with PHP4 and MySQL3 at times when each was a major version ahead of that. When the good folks at my hosting [...]

Learning: MySQL Optimization

I have over 1000 posts here at MaisonBisson, but even so, the table with all those posts is under 3MB. Now I’ve got a project with 150,000 posts — yes, 150,000 posts! — and the table is about 500MB. An associated table, structured sort of like WP’s postsmeta, has over 1.5 million records and weighs [...]

I Will Crush You

Or, er, my server will be crushed. I guess I should admit that my stuff could do with some optimization, maybe. Perhaps what I really need is something faster than Celeron with 512MB RAM. Maybe.

tags: 512mb ram, apache, break point, breaking point, celeron, crushed, load average, mysql, php, server, top, web server

Introducing bsuite_speedcache

I wrote bsuite_speedcache to reduce the number of database queries I was executing per page load. By implementing it on some of the content in my sidebar, I dropped 35 queries for each cache hit. That might not seem like much, but it should average about 525 queries per minute that that my host server [...]

Open Source GIS

Here’s an interesting GeoPlace.com article on open source GIS tools, including GIS extensions to PosgreSQL and MySQL. Via The Map Room.

tags: geo world, geocode, geocoding, geographic information system, geography, geolocation, gis, gis development, gis guide, gis tools, map room, mapping, mysql, open source, open source gis, open source tools

Doing Relevance Ranked Full-Text Searches In MySQL

I’m going out on a limb to say MySQL’s full-text indexing and searching features are underused. They appeared in MySQL 3.23.23 (most people are using 4.x, and 5 is in development), but it’s been news to most of the people I know.
Here’s the deal, the MATCH() function can search a full-text index for a string [...]