CMSWire asked me to be the first they interview for their brand new column Flash Quiz. If you ever wondered how much I sleep and whether I like fancy cars, check out Flash Quiz: Sandro Groganz Speaks.
So I finally installed the xdebug PHP extension and started doing some performance analysis of MemberDB using xdebug and kcachegrind. The upshot of which is a number of commits to the bzr tree that dramatically improve performance in several key areas. The answer? Caching.
I’m not even talking using memcached or caching things in database tables or anything like that - just about everything is still the same dynamically produced content as before, but I’m now caching some simple things avoiding many round-trips to the database while executing a script.
There were a few things that were taking a fair bit of execution time:
- The generation of the menu. In MemberDB, there’s a menu on the left. There’s also a …
Richard Branson is one to go against the grain, and usually to good effect. He has built a major business empire by taking chances on innovation.
Small wonder, then, that his company Virgin Mobile has selected MySQL to manage a critical component of its business: SMS messaging. According to MySQL's release on Thursday:
Over 500GB [of SMS data] are contained in MySQL data tables, and subject to thousands of queries per second. This solution handles the processing of Virgin Mobile's SMS messaging--where each individual text message can generate over 100 database queries on average (analysis, processing the response, and annual statistics)....[Using MySQL and LAMP]...ensures the operator a significant return on investment compared with a proprietary …
[Read more]It's not that I've really posted that much at http://mysqlguy.blogspot.com, but I wanted someplace that was a little more permanent going forward. The reason should become clear hopefully later this month, but let's just say I've been working out some details to allow me to contribute directly to the MySQL community in some tangible ways. In any case, stay tuned here.
Sometimes you need to work with big numbers in PHP (gulp). For example, sometimes 32-bit identifiers are not enough and you have to use BIGINT 64-bit ids; e.g. if you are encoding additional information like the server ID into high bits of the ID.
I had already written about the mess that 64-bit integers are in PHP. But if the numbers you use do not cover 64-bit range fully, floats might save the day. The trick is that PHP floats are in fact doubles, i.e. double-precision 64-bit numbers. They have 52 bits for mantissa, and integer values up to 2^53-1 can be stored exactly. So if you're using up to 53 bits, you're OK with floats.
However, there's a conversion caveat you should be aware of.
On different systems, float is converted to string differently. (I spent a bit of time fighting with …
[Read more]There are some notable omissions from Linux Magazine's list of the top-20 companies for 2008 (MuleSource, MySQL, etc.), but it's an interesting list because it doesn't read like a standard list of open-source companies. Or, rather, it takes a more expansive, "Long Tail" view of what an open source company is.
Hence, the list includes the usual suspects like Alfresco (correctly reading that Alfresco is a serious threat to Sharepoint's growing dominance), Mozilla, Ubuntu/Canonical, Red Hat, and rPath, but also Google, Yahoo!, and...Microsoft.
...
Back in 1998 one of the reasons my boss back then used for not
doing something on a Linux box was
"We don't have enough people with the skills to support that"
Fast forward 10 years and the opposite is happening,
I had a chat with a coworker the other day and we were wondering
how we ended up having a windows box from a 3rd party vendor in
our platform since no one in our organization knows how to
support it.
I imagine similar conversations in MySQL environments where people wonder who is going to support that one proprietary database that came a long with an oldskool vendor
Evolution and Adoption is happening, change happens !!
Kill all mysql threads that have 300 or more seconds of time:
mysqladmin -uroot processlist | grep -v +| awk –field-separator=’|’ {’ if ($7 > 500) print ” mysqladmin -uroot kill ” $2 ‘}
One quick note, need to check to see what status the connection is in, sleeping if you want to kill idle connections, or something else.
mysqladmin -uroot processlist | grep -v +| grep Sleep | awk –field-separator=’|’ {’ if ($7 > 500) print ” mysqladmin -uroot kill ” $2 ‘}
I spoke at the MySQL Meetup in Montreal on Tuesday. It was our
last regular meetup now that I'm going to be a trainer. Slides
are online here. Me trying to explain how memory usage works
was probably a bit ambitious - feel free to comment if I've
simplified something. My backup section also only gave examples
for mysqldump.
Live in Montreal, and want to organize the meetings? Let me know.
While I'm doing most of my blogging these days over at InfoWorld, once in a while I'll post something over here that is more about MySQL. Some folks likely saw our announcement with Virgin Mobile selecting MySQL Enterprise. This is one in a long series of wins in the telecommunications industry in the last year. It's been a rapidly growing part of our business and one that I'm …
[Read more]