Jun 29, 2010 |
Percona Software
Percona Server release 11.0 which we announced few days ago unfortunately was released with a bug introduced while implementing stripping comments in query cache which could cause server crash with certain types of queries if query cache is enabled. We have released Percona Server release 11.1 which includes a fix for this issue. If you […]
Jun 10, 2010 |
Insight for DBAs, MySQL
I just wrote a large post on reasons for innodb main tablespace excessive growth and I thought it would make sense to explain briefly of why it is so frequently you have purge not being the problem at all and when out of no where you can see purge thread being unable to keep up […]
Jun 10, 2010 |
Insight for DBAs, MySQL
So you’re running MySQL With innodb_file_per_table option but your ibdata1 file which holds main (or system) tablespace have grown dramatically from its starting 10MB size. What could be the reason of this growth and what you can do about it ? There are few things which are always stored in main tablespace – these are […]
Jun 08, 2010 |
Insight for DBAs, MySQL
Quite frequently I see people confused what table locks reported by SHOW INNODB STATUS really mean. Check this out for example:
|
---TRANSACTION 0 4872, ACTIVE 32 sec, process no 7142, OS thread id 1141287232 2 lock struct(s), heap size 368 MySQL thread id 8, query id 164 localhost root TABLE LOCK table `test/t1` trx id 0 4872 lock mode IX |
This output gives us an impression Innodb has taken table lock on test/t1 table and many people tend to think Innodb in fact in some circumstances would abandon its row level locking and […]
Jun 07, 2010 |
Benchmarks, Insight for Developers, MySQL
You might be familiar with Six Sigma business management strategy which is employed by variety of the companies in relationship to managing quality of its product. Six Sigma applies to number of defects – when you have reached six sigma quality in your production you would see 99.99966% of the products manufactured with no defects, […]
Jun 02, 2010 |
Insight for Developers, MySQL
When analyzing how good or bad response time is it is not handy to look at the averages, min or max times – something what is easily computed using built in aggregate functions. We most likely would like to see some percentile numbers – 95 percentile or 99 percentile. The problem is computing these in […]
May 31, 2010 |
Insight for Developers, MySQL
In so many cases troubleshooting applications I keep thinking how much more efficient things could be going if only there would be a good instrumentation available. Most of applications out there have very little code to help understand what is going on and if it is there it is frequently looking at some metrics which […]
May 22, 2010 |
Insight for DBAs, MySQL
One schema optimization we often do is extending index when there are queries which can use more key part. Typically this is safe operation, unless index length increases dramatically queries which can use index can also use prefix of the new index are they ? It turns there are special cases when this is not […]
May 19, 2010 |
Insight for DBAs, MySQL
I worked with application recently which has great memcached hit ratio – over 99% but yet still has average page response time over 500ms. Reason ? There are hundreds memcached gets and even though they have some 0.4ms response time they add up to add hundreds of ms to the total response time.
May 14, 2010 |
Insight for DBAs, MySQL
Upgrading from MySQL 5.0 to MySQL 5.1 or Percona Server 5.1 you may run into issues with mysql_upgrade – it will identify some tables to be upgraded and will attempt to run REPAIR TABLE for them. This will fail with “The storage engine for the table doesn’t support repair” error message. This seems to confuse […]
May 10, 2010 |
Insight for Developers, MySQL
In comments to my previous post I got number number of comments saying if MySQL would not have multiple storage engine interface it would not allow people to do various very cool stuff. And I agree with this. The question is how cool you want your database operation to be ? Visiting customers I see […]
May 08, 2010 |
Insight for DBAs, MySQL
One of the big “Selling Points” of MySQL is support for Multiple Storage engines, and from the glance view it is indeed great to provide users with same top level SQL interface allowing them to store their data many different way. As nice as it sounds the in theory this benefit comes at very significant […]
May 06, 2010 |
Insight for DBAs, MySQL
The amount of memory Innodb will require for its data dictionary depends on amount of tables you have as well as number of fields and indexes. Innodb allocates this memory once table is accessed and keeps until server is shut down. In XtraDB we have an option to restrict that limit. So how much memory […]
Apr 30, 2010 |
Cloud, MySQL
Another thing I find interesting about MongoDB is its approach to Durability, Data Consistency and Availability. It is very relaxed and will not work for some applications but for others it can be usable in current form. Let me explain some concepts and compare it to technologies in MySQL space. First I think MongoDB is […]
Apr 30, 2010 |
Cloud, MySQL
I went to MongoSF today – quite an event, and I hope to have a chance to write more about it. This post is about one replication problem and how MongoDB solves it. If you’re using MySQL Replication when your master goes down it is possible for some writes to be executed on the master, […]
Apr 11, 2010 |
Insight for DBAs, MySQL
When replication runs out of sync first question you often ask is if someone could be writing to the slave. Of course there is read_only setting which is good to set in the slave but it is not set always and also users with SUPER privilege bypass it. Looking into binary log is obvious choice […]
Apr 08, 2010 |
Insight for DBAs, MySQL
Every so often I am working on the system with custom compiled MySQL. How to upgrade to the new MySQL Options while preserving as much of original compilation options as possible if original build scripts are not available ? MySQL distribution has a great script called mysqlbug which was supposed to be used for bug […]
Mar 30, 2010 |
Insight for Developers, MySQL
Andrew from Sphinx continues to work on improving SQL (or SphinxQL) support and now he published benchmarks comparing arithmetic expression handling in Sphinx to one in MySQL. The result ? Sphinx scored 3x to 20x faster. Andrew goes to explain results are not 100% comparable (as we can see in the table results are even […]
Mar 26, 2010 |
MySQL, Percona Software
In XtraDB we have the table INNODB_BUFFER_POOL_PAGES_INDEX which shows which pages belong to which indexes in which tables. Using thing information and standard TABLES table we can see how well different tables fit in buffer pool.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
SELECT d.*, ROUND(100 * cnt * 16384 / ( data_length + index_length ), 2) fit FROM (SELECT schema_name, table_name, COUNT(*) cnt, SUM(dirty), SUM(hashed) FROM INNODB_BUFFER_POOL_PAGES_INDEX GROUP BY schema_name, table_name ORDER BY cnt DESC LIMIT 20) d JOIN TABLES ON ( TABLES.table_schema = d.schema_name AND TABLES.table_name = d.table_name ); +-------------+---------------------+---------+------------+-------------+--------+ | schema_name | table_name | cnt | sum(dirty) | sum(hashed) | fit | +-------------+---------------------+---------+------------+-------------+--------+ | db | table1 | 1699133 | 13296 | 385841 | 87.49 | | db | table2 | 1173272 | 17399 | 11099 | 98.42 | | db | table3 | 916641 | 7849 | 15316 | 94.77 | | db | table4 | 86999 | 1555 | 75554 | 87.42 | | db | table5 | 32701 | 7997 | 30082 | 91.61 | | db | table6 | 31990 | 4495 | 25681 | 102.97 | | db | table7 | 1 | 0 | 0 | 100.00 | +-------------+---------------------+---------+------------+-------------+--------+ 7 rows in set (26.45 sec) |
You can also see in one of the cases the value shown is a bit over 100% – […]
Mar 19, 2010 |
Benchmarks, Insight for DBAs, MySQL
So you’re running the benchmark/stress test – how do you tell if MySQL server is really loaded ? This looks like the trivial question but in fact, especially when workload consists of simple queries I see the load generation and network really putting a lot less load on MySQL than expected. For example you may […]