<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tuning on FromDual GmbH</title><link>https://www.fromdual.com/tags/tuning/</link><description>Recent content in Tuning on FromDual GmbH</description><generator>Hugo</generator><language>en-GB</language><managingEditor>oli.sennhauser@fromdual.com (Oli Sennhauser)</managingEditor><webMaster>oli.sennhauser@fromdual.com (Oli Sennhauser)</webMaster><copyright>© FromDual GmbH</copyright><lastBuildDate>Thu, 14 Mar 2024 11:41:36 +0000</lastBuildDate><atom:link href="https://www.fromdual.com/tags/tuning/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL Query Tuning - Performance</title><link>https://www.fromdual.com/blog/sql-query-tuning-performance/</link><pubDate>Mon, 05 Oct 2020 16:13:10 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/sql-query-tuning-performance/</guid><description>&lt;p&gt;How could the following SQL queries be improved performance wise and otherwise and can you also explain why your change is more optimal?&lt;/p&gt;</description></item><item><title>Creating synthetic data sets for tuning SQL queries</title><link>https://www.fromdual.com/blog/creating-synthetic-data-sets-for-tuning-sql-queries/</link><pubDate>Fri, 02 Oct 2020 16:50:33 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/creating-synthetic-data-sets-for-tuning-sql-queries/</guid><description>&lt;p&gt;When it comes to SQL Query tuning with customers we often get the slow running SQL query and possibly, in good cases, also the table structure. But very often, for various reasons, we do not get the data.&lt;/p&gt;</description></item><item><title>Binlog format MIXED with filtering</title><link>https://www.fromdual.com/blog/binlog-format-mixed-with-filtering/</link><pubDate>Wed, 15 Jul 2015 06:11:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/binlog-format-mixed-with-filtering/</guid><description>&lt;p&gt;Binlog format &lt;code&gt;MIXED&lt;/code&gt; changes the binary log format (&lt;code&gt;ROW&lt;/code&gt; or &lt;code&gt;STATEMENT&lt;/code&gt;) depending on the queries (deterministic or not). This makes it impossible to define 100% correctly working binary log filter rules.&lt;/p&gt;</description></item><item><title>Flush time is set</title><link>https://www.fromdual.com/blog/flush-time-is-set/</link><pubDate>Wed, 15 Jul 2015 06:10:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/flush-time-is-set/</guid><description>&lt;p&gt;If the variable &lt;code&gt;flush_time&lt;/code&gt; is set to a non-zero value, all tables are closed (and flushed) every &lt;code&gt;flush_time&lt;/code&gt; seconds to disk. This can cause unnecessary and high I/O spikes.&lt;/p&gt;</description></item><item><title>Table definition cache too small</title><link>https://www.fromdual.com/blog/table-definition-cache-too-small/</link><pubDate>Wed, 15 Jul 2015 06:08:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/table-definition-cache-too-small/</guid><description>&lt;p&gt;The number of table definitions (&lt;code&gt;SHOW CREATE TABLE&amp;lt;br&amp;gt;G&lt;/code&gt;) that can be stored in the table definition cache (&lt;code&gt;table_definition_cache&lt;/code&gt;). If you have a large number of tables (&lt;br&gt;&amp;gt; 400) in your database instance, you should consider a larger table definition cache to increase your database throughput and decrease your query latency.&lt;br&gt;
The command &lt;code&gt;SELECT COUNT(*) FROM information_schema.tables;&lt;/code&gt; shows you how many tables and thus table definitions you have. The global status &lt;code&gt;Open_table_definitions&lt;/code&gt; is the current amount of open table definitions.&lt;/p&gt;</description></item><item><title>Table open cache too small</title><link>https://www.fromdual.com/blog/table-open-cache-too-small/</link><pubDate>Wed, 15 Jul 2015 06:04:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/table-open-cache-too-small/</guid><description>&lt;p&gt;The Table Open Cache (&lt;code&gt;table_open_cache&lt;/code&gt; or old name &lt;code&gt;table_cache&lt;/code&gt;) is a cache to store file handles for all threads. The actual value of cache entries can be seen with the global status of open tables (&lt;code&gt;Open_tables&lt;/code&gt;).&lt;br&gt;
Increasing &lt;code&gt;table_open_cache&lt;/code&gt; increases the number of file descriptors (&lt;code&gt;open_files_limit&lt;/code&gt;) that MySQL requires.&lt;br&gt;
You can check whether you need to increase the Table Open Cache by checking &lt;code&gt;Open_tables&lt;/code&gt; and &lt;code&gt;Opened_tables&lt;/code&gt;. If the value of &lt;code&gt;Opened_tables&lt;/code&gt; is large and you do not use &lt;code&gt;FLUSH TABLES&lt;/code&gt; often (which just forces all tables to be closed and reopened), then you should increase the value of the &lt;code&gt;table_open_cache&lt;/code&gt; variable.&lt;/p&gt;</description></item><item><title>MySQL single query performance - the truth!</title><link>https://www.fromdual.com/blog/mysql-single-query-performance-the-truth/</link><pubDate>Fri, 13 Dec 2013 17:33:44 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-single-query-performance-the-truth/</guid><description>&lt;h1 id="mysql-single-query-performance---the-truth"&gt;MySQL single query performance - the truth!&lt;/h1&gt;
&lt;p&gt;As &lt;a href="https://www.fromdual.com/comment/871#comment-871" title="5.5 vs 5.6 single threaded performance"&gt;suggested by morgo&lt;/a&gt; I did a little test for the same query and the same data-set mentioned in &lt;a href="https://www.fromdual.com/impact-of-column-types-on-mysql-join-performance" title="Impact of column types on MySQL JOIN performance"&gt;Impact of column types on MySQL JOIN performance&lt;/a&gt; but looking into an other dimension: the time (aka MySQL versions).&lt;/p&gt;</description></item><item><title>Impact of column types on MySQL JOIN performance</title><link>https://www.fromdual.com/blog/impact-of-column-types-on-mysql-join-performance/</link><pubDate>Wed, 11 Dec 2013 20:12:40 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/impact-of-column-types-on-mysql-join-performance/</guid><description>&lt;p&gt;In our &lt;a href="https://www.fromdual.com/mysql-training" target="FromDual MySQL Training"&gt;MySQL trainings&lt;/a&gt; and &lt;a href="https://www.fromdual.com/mysql-consulting" title="FromDual MySQL Consulting"&gt;consulting engagements&lt;/a&gt; we tell our customers always to use the &lt;a href="http://dev.mysql.com/doc/refman/5.6/en/storage-requirements.html" target="_blank" title="Data Type Storage Requirements"&gt;smallest possible data type&lt;/a&gt; to get better query performance. Especially for the &lt;code&gt;JOIN&lt;/code&gt; columns. This advice is supported as well by the MySQL documentation in the chapter &lt;a href="http://dev.mysql.com/doc/refman/5.6/en/optimize-data-types.html" target="_blank" title="MySQL documentation"&gt;Optimizing Data Types&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Deadlocks, indexing and Primary Key's</title><link>https://www.fromdual.com/blog/deadlocks-indexing-and-primary-keys/</link><pubDate>Thu, 16 Aug 2012 10:51:40 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/deadlocks-indexing-and-primary-keys/</guid><description>&lt;p&gt;Recently a customer has shown up with some deadlocks occurring frequently. They were of the following type (I have shortened the output a bit):&lt;/p&gt;</description></item><item><title>Canias optimizations</title><link>https://www.fromdual.com/blog/canias-optimizations/</link><pubDate>Wed, 28 Dec 2011 16:02:23 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/canias-optimizations/</guid><description>&lt;p&gt;Canias is a great ERP product but there is still some potential to improve it. We only focus on MyISAM/InnoDB installations of Canias v6.0.2 in this article. For other DB back-ends those recommendations might be obsolete.&lt;/p&gt;</description></item><item><title>Impact of indices on MySQL</title><link>https://www.fromdual.com/blog/impact-of-indices/</link><pubDate>Fri, 31 Dec 2010 17:05:17 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/impact-of-indices/</guid><description>&lt;p&gt;It is generally well known that indexes help a lot to speed up database queries (especially &lt;code&gt;SELECT&lt;/code&gt; but also &lt;code&gt;UPDATE&lt;/code&gt; and &lt;code&gt;DELETE&lt;/code&gt;). It is less known, that indexes also have some disadvantages.&lt;/p&gt;</description></item><item><title>MySQL Database Health Check</title><link>https://www.fromdual.com/mysql-database-health-check/index.php</link><pubDate>Sat, 07 Nov 2009 22:13:39 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/mysql-database-health-check/index.php</guid><description>&lt;?php

$fromdual_base = dirname(dirname($_SERVER['SCRIPT_FILENAME']));
$fromdual_file = $fromdual_base . '/php/database-health-check.inc';
include($fromdual_file);

?&gt;</description></item><item><title>DBA wisdoms</title><link>https://www.fromdual.com/blog/dba-wisdoms/</link><pubDate>Mon, 15 Mar 2010 13:29:16 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/dba-wisdoms/</guid><description>&lt;figure&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Controlling developers is like herding cats.&lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;figcaption&gt;
 Kevin Loney, Oracle DBA Handbook
 &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br&gt;
&lt;figure&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Oh no, it's not. It's much harder than that!&lt;/p&gt;</description></item><item><title>Performance Tuning Key for MySQL</title><link>https://www.fromdual.com/mysql-performance-tuning-key/</link><pubDate>Sat, 13 Mar 2010 20:40:21 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/mysql-performance-tuning-key/</guid><description>&lt;p&gt;This MySQL Performance Tuning Key should give you a guide how to best tune you MySQL database systematically&amp;hellip; It should also work similar for other RDBMS.&lt;/p&gt;</description></item></channel></rss>