by Aurimas Mikalauskas | Aug 29, 2012 | Insight for DBAs, MySQL
If you ever had a replication slave that is severely behind, you probably noticed that it’s not catching up with a busy master at a steady pace. Instead, the “Seconds behind master” is going up and down so you can’t really tell whether the...
by Aurimas Mikalauskas | Aug 28, 2012 | Insight for DBAs, Insight for Developers
Spoiler alert: If your boss does not need an elephant, he is definitely NOT going to buy one from you. If he will, he will regret it and eventually you will too. I must appologize to the reader who was expecting to find an advice on selling useless goods to his boss....
by Aurimas Mikalauskas | Apr 7, 2011 | Insight for DBAs, MySQL
I don’t use many tools in my consulting practice but for the ones I do, I try to know them as best as I can. I’ve been using mk-query-digest for almost as long as it exists but it continues to surprise me in ways I couldn’t imagine it would. This...
by Peter Zaitsev | Jan 10, 2010 | Insight for Developers, MySQL
One of the problems I have with Memcache is this cache is passive, this means it only stores cached data. This means application using Memcache has to has to special logic to handle misses from the cache, being careful updating the cache – you may have multiple...
by Vadim Tkachenko | Jun 29, 2009 | Insight for DBAs
As you see MySQL is doing great in InnoDB performance improvements, so we decided to concentrate more on additional InnoDB features, which will make difference. Beside ideas I put before https://www.percona.com/blog/2009/03/30/my-hot-list-for-next-innodb-features/...
by Peter Zaitsev | Mar 25, 2009 | Insight for DBAs
As larger and larger amount of memory become common (512GB is something you can fit into relatively commodity server this day) many customers select to build their application so all or most of their database (frequently Innodb) fits into memory. If all tables fit in...
by Baron Schwartz | Dec 22, 2008 | Insight for Developers
We have a lot of customers who do click analysis, site analytics, search engine marketing, online advertising, user behavior analysis, and many similar types of work. The first thing these have in common is that they’re generally some kind of loggable event....
by Peter Zaitsev | Dec 14, 2008 | Insight for DBAs
One command, which few people realize exists is SHOW OPEN TABLES – it allows you to examine what tables do you have open right now: mysql> show open tables from test; +----------+-------+--------+-------------+ | Database | Table | In_use | Name_locked |...
by Peter Zaitsev | Nov 10, 2008 | Insight for DBAs
For normal Innodb “hot” backups we use LVM or other snapshot based technologies with pretty good success. However having incremental backups remain the problem. First why do you need incremental backups at all ? Why not just take the full backups daily....
by Maciej Dobrzanski | Nov 6, 2008 | Insight for DBAs
Everyone does backups. Usually it’s some nightly batch job that just dumps all MySQL tables into a text file or ordinarily copies the binary files from the data directory to a safe location. Obviously both ways involve much more complex operations than it would seem...
by Vadim Tkachenko | Sep 8, 2008 | Percona Software
We gathered together our ideas of MySQL improvements on this page https://www.percona.com/percona-lab/dev-plan.html and we are going to implement some of them. My favorite one is – make InnoDB files .ibd (one created with –innodb-file-per-table=1) movable...
by Peter Zaitsev | Jul 20, 2008 | Insight for Developers
As Baron writes it is not the number of rows returned by the query but number of rows accessed by the query will most likely be defining query performance. Of course not all row accessed are created equal (such as full table scan row accesses may be much faster than...
by Baron Schwartz | Jun 23, 2008 | Insight for DBAs
How many of you use the MySQL command-line client? And did you know about the pager command you can give it? It’s pretty useful. It tells MySQL to pipe the output of your commands through the specified program before displaying it to you. MySQL Command-line...
by Peter Zaitsev | Apr 18, 2008 | Insight for Developers
MySQL has a lot of string data types – CHAR, VARCHAR, BLOB, TEXT, ENUM and bunch of variants such as VARBINARY but I think it is not enough 🙂 I would also like to see type HEXCHAR which would be able to store hex strings, such as those returned as MD5() and...
by Peter Zaitsev | Apr 9, 2008 | Insight for DBAs
There are interesting posts these day about future of MySQL Replication by Brian Frank and Arjen. I think it very interesting to take a look at a bit bigger picture using framework from Innovators Dilemma and Innovators Solution. I’m not going to speak about...
by Peter Zaitsev | Apr 8, 2008 | Insight for DBAs
If you’re using Innodb tables MySQL has innodb_flush_log_at_trx_commit variable which defines how durable your transactions are. If you have high durability requirements you set it to 1 and log records are pushed directly to the disk on transaction commit. If...
by Alexey Kovyrin | Jan 24, 2008 | Benchmarks
Really often in customers’ application we can see a huge tables with varchar/char fields, with small sets of possible values. These are “state”, “gender”, “status”, “weapon_type”, etc, etc. Frequently we suggest to...
by Peter Zaitsev | Nov 18, 2007 | Insight for Developers
I was thinking today of how people tend to use MySQL in modern applications and it stroke me in many cases MySQL is not used to process the data, at least not on the large scale – instead it is used for data storage and light duty data retrieval. Even in this...
by Peter Zaitsev | Sep 28, 2007 | Insight for Developers
Many Open Source software solutions use database per user (or set of tables per user) which starts to cause problems if it is used on massive scale (blog hosting, forum hosting etc), resulting of hundreds of thousands if not millions of tables per server which can...
by Peter Zaitsev | Sep 18, 2007 | Insight for Developers
Every so often you need to perform sort results retrieved from MySQL when your WHERE clause goes beyound col=const values which would allow MySQL to still use second portion of the index for the order by. Ranges as well as IN lists make this optimization impossible,...