Blog
Monitoring MySQL options
My recent poll What alert monitoring do you use? showed 25% of the 58 respondents to bravely state they had no MySQL monitoring. I see 1 in 3, ~33% in my consulting so this is consistent.
Read moreUnknown locale for statpack & maatkit
I had trouble today on a client site using my MySQL power tools Maatkit and Statpack . $ ~/scripts/statpack.py --files=mysql.status.091015.080001.txt,mysql.status.091015.090001.txt Traceback (most recent call last): File "/home/rbradfor/scripts/statpack.py", line 563, in ?
Read moreTake a look at mk-query-digest
Q: What SQL is running on your MySQL database server now? A: The bane of pain for MySQL DBA’s when there is no official MySQL instrumentation that is dynamic and fine grained sufficiently to solve this problem at the SQL interface.
Read moreSimplicity
Simplicity – Always strive for a simpler solution. This is a principle I have held and have used for many years in my technology based profession. It’s very surprising that many organizations when addressing a problem forget to look at what is indeed right infront of them.
Read moreLooking just at the data
There are many areas you need to review when addressing MySQL performance such as current database load, executed SQL statements, connections, configuration parameters, memory usage, disk to memory ratio, hardware performance & bottlenecks just to name a few.
Read moreWhat alert monitoring do you use?
More importantly, how often to you confirm access to your server and database with that alert monitoring? With a client yesterday the primary database server while still usable and serving connections for a while, but was not accessible via SSH to investigate performance issues.
Read moreNoSQL options
The NoSQL event in New York had a number of presentations on non relational technologies including of Hadoop , MongoDB and CouchDB . Coming historically from a relational background of 20 years with Ingres , Oracle and MySQL I have been moving my focus towards non relational data store.
Read moreTestability
If I was to provide one tip for organizations on how to implement a successful technology solution, I would state you need to ensure your product/software/system is completely testable. Independent on how you elect to test your system, the design of creating a completely testable infrastructure will enable exponential savings as your business grows.
Read moreUnexplained function output
I was asked today to confirm the operation of INET_ATON() and INET_NTOA() functions for converting IP4 strings to numeric representations. My tests on the machine I was just connected to at the very instant reported the following results.
Read moreMySQL Query Cache path
Just how effective is the Query Cache on performance? If you are not comfortable reading the MySQL code you can cheat very easily with the SHOW PROFILE command. This demonstration will show you at a high level the relative impact without and with the Query Cache.
Read moreUsing the Query Cache effectively
Maximize your strengths, minimize your weaknesses. You can apply this approach to many things in life, I apply it to describing and using MySQL the product, and it’s components. The Query Cache like many features in MySQL, and indeed features in many different RDBMS products (don’t get me started on Oracle *features*) have relative benefits.
Read moreEXPLAIN – An essential tool for MySQL developers.
Just recently I came across the presentation “Bend SQL to your will with EXPLAIN” by Ligaya Turmelle via the Linked In – MySQL Speakers and Presenters group. Slides available at Slideshare .
Read moreCalculating your database size
I generally use the following MySQL INFORMATION_SCHEMA (I_S) query to Calculate Your MySQL Database Size . This query and most others that access the MySQL INFORMATION_SCHEMA can be very slow to execute because they are not real tables and are not governed by physical data, memory buffers and indexes for example but rather internal MySQL data structures.
Read moreUnderstanding Innodb Transaction Isolation
The MySQL Innodb storage engine provides ACID compliance, the ‘I’ being isolation. There are four states defined in MySQL with the tx_isolation system variable, READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ and SERIALIZABLE. Generally MySQL installations do not modify the default value of tx_isolation = REPEATABLE-READ, however I have seen with a number of clients the default value has been changed to READ-COMMITTED.
Read more