<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The FromDual Blogs on FromDual GmbH</title><link>https://www.fromdual.com/blog/</link><description>Recent content in The FromDual Blogs 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>Tue, 27 Oct 2026 15:02:00 +0100</lastBuildDate><atom:link href="https://www.fromdual.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Short term notice: Percona XtraDB Cluster training in English 7/8 February 2018 in Germany</title><link>https://www.fromdual.com/blog/percona/short-term-notice-percona-xtradb-cluster-training-in-english-7-8-february-2018-in-germany/</link><pubDate>Fri, 19 Jan 2018 17:05:29 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/percona/short-term-notice-percona-xtradb-cluster-training-in-english-7-8-february-2018-in-germany/</guid><description>&lt;p&gt;FromDual offers short term a Percona XtraDB Cluster and MySQL Galera Cluster training (2 days) in English.&lt;/p&gt;</description></item><item><title>Xtrabackup in a nutshell</title><link>https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/</link><pubDate>Wed, 06 Nov 2013 14:23:50 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#prerequisites"&gt;Prerequisites&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#full"&gt;Full Backup&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_create_backup"&gt;Create Full Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_prepare_backup"&gt;Prepare Full Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_restore"&gt;Restore Full Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_restore_slave"&gt;Prepare slave from full backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_restore_gtid_slave"&gt;Prepare GTID slave from full backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_adv"&gt;Advantages / Disadvantages&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#fb_imp"&gt;Important Hints&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#incremental"&gt;Incremental Backup&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#ib_create_backup"&gt;Create Incremental Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#ib_prepare_backup"&gt;Prepare Incremental Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#ib_restore"&gt;Restore Incremental Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#ib_adv"&gt;Advantages / Disadvantages&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#ib_imp"&gt;Important Hints&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#diff"&gt;Differential Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#partial"&gt;Partial Backup&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#pb_create_backup"&gt;Create Partial Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#pb_prepare_backup"&gt;Prepare Partial Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#pb_restore"&gt;Restore Partial Backup&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#pb_adv"&gt;Advantages / Disadvantages&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/percona/xtrabackup_in_a_nutshell/#pb_imp"&gt;Important Hints&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;No one can deny that one of the most important and daily tasks for DBAs is performing backup and restore operations, we&amp;rsquo;re not required to perform backup and restore operations only when we want to add new replication slave, when we want to implement disaster recovery procedures or when we want to prepare testing or staging server for the running production system, but even if we&amp;rsquo;re going to make any changes to the database schema in order to enhance the database performance, it&amp;rsquo;s recommended to have fresh backup copy before making any live changes, so if backup and restore operations cannot be handled smoothly, we&amp;rsquo;re going to face many troubles in our daily work. If we&amp;rsquo;re going to talk about backup and restore operations, Xtrabackup tool will be strongly appeared.&lt;/p&gt;</description></item><item><title>Quick links to the MySQL documentation</title><link>https://www.fromdual.com/blog/mysql-documentation-quick-links/</link><pubDate>Mon, 15 Mar 2010 15:50:27 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-documentation-quick-links/</guid><description>&lt;h2 id="mysql-statement-syntax"&gt;MySQL Statement Syntax&lt;/h2&gt;&#10;&lt;h3 id="data-definition-language-ddl-statements"&gt;Data Definition Language (DDL) Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-database.html" target="_blank"&gt;ALTER DATABASE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-event.html" target="_blank"&gt;ALTER EVENT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-logfile-group.html" target="_blank"&gt;ALTER LOGFILE GROUP&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-function.html" target="_blank"&gt;ALTER FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-procedure.html" target="_blank"&gt;ALTER PROCEDURE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-server.html" target="_blank"&gt;ALTER SERVER&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-table.html" target="_blank"&gt;ALTER TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-tablespace.html" target="_blank"&gt;ALTER TABLESPACE&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-view.html" target="_blank"&gt;ALTER VIEW&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/alter-database.html" target="_blank"&gt;CREATE DATABASE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-event.html" target="_blank"&gt;CREATE EVENT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-function.html" target="_blank"&gt;CREATE FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-index.html" target="_blank"&gt;CREATE INDEX&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-logfile-group.html" target="_blank"&gt;CREATE LOGFILE GROUP&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-procedure.html" target="_blank"&gt;CREATE PROCEDURE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-function.html" target="_blank"&gt;CREATE FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-server.html" target="_blank"&gt;CREATE SERVER&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-table.html" target="_blank"&gt;CREATE TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-tablespace.html" target="_blank"&gt;CREATE TABLESPACE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-trigger.html" target="_blank"&gt;CREATE TRIGGER&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-view.html" target="_blank"&gt;CREATE VIEW&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-database.html" target="_blank"&gt;DROP DATABASE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-event.html" target="_blank"&gt;DROP EVENT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-function.html" target="_blank"&gt;DROP FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-index.html" target="_blank"&gt;DROP INDEX&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-logfile-group.html" target="_blank"&gt;DROP LOGFILE GROUP&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-procedure.html" target="_blank"&gt;DROP PROCEDURE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-function.html" target="_blank"&gt;DROP FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-server.html" target="_blank"&gt;DROP SERVER&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-table.html" target="_blank"&gt;DROP TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-tablespace.html" target="_blank"&gt;DROP TABLESPACE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-trigger.html" target="_blank"&gt;DROP TRIGGER&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-view.html" target="_blank"&gt;DROP VIEW&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/rename-database.html" target="_blank"&gt;RENAME DATABASE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/rename-table.html" target="_blank"&gt;RENAME TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="data-manipulation-language-dml-statements"&gt;Data Manipulation Language (DML) Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/call.html" target="_blank"&gt;CALL&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/delete.html" target="_blank"&gt;DELETE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/do.html" target="_blank"&gt;DO&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/handler.html" target="_blank"&gt;HANDLER&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/insert.html" target="_blank"&gt;INSERT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/load-data.html" target="_blank"&gt;LOAD DATA INFILE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/replace.html" target="_blank"&gt;REPLACE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/select.html" target="_blank"&gt;SELECT&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/truncate-table.html" target="_blank"&gt;TRUNCATE TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/update.html" target="_blank"&gt;UPDATE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="mysql-utility-statements"&gt;MySQL Utility Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/describe.html" target="_blank"&gt;DESCRIBE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/explain.html" target="_blank"&gt;EXPLAIN&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/help.html" target="_blank"&gt;HELP&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/use.html" target="_blank"&gt;USE&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="mysql-transactional-and-locking-statements"&gt;MySQL Transactional and Locking Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;START TRANSACTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;COMMIT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;ROLLBACK&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;SAVEPOINT&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;ROLLBACK TO SAVEPOINT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;LOCK TABLES&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;UNLOCK TABLES&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;SET TRANSACTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/.html" target="_blank"&gt;XA Transactions&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="account-management-statements"&gt;Account Management Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-user.html" target="_blank"&gt;CREATE USER&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-user.html" target="_blank"&gt;DROP USER&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/grant.html" target="_blank"&gt;GRANT&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/rename-user.html" target="_blank"&gt;RENAME USER&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/revoke.html" target="_blank"&gt;REVOKE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/set-password.html" target="_blank"&gt;SET PASSWORD&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="table-maintenance-statements"&gt;Table Maintenance Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/analyze-table.html" target="_blank"&gt;ANALYZE TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/backup-table.html" target="_blank"&gt;BACKUP TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/check-table.html" target="_blank"&gt;CHECK TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/checksum-table.html" target="_blank"&gt;CHECKSUM TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/optimize-table.html" target="_blank"&gt;OPTIMIZE TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/repair-table.html" target="_blank"&gt;REPAIR TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/restore-table.html" target="_blank"&gt;RESTORE TABLE&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="plugin-and-user-defined-function-statements"&gt;Plugin and User-Defined Function Statements&lt;/h3&gt;&#10;&lt;table style="table-layout: fixed;"&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/create-function.html" target="_blank"&gt;CREATE FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/drop-function.html" target="_blank"&gt;DROP FUNCTION&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/install-plugin.html" target="_blank"&gt;INSTALL PLUGIN&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/uninstall-plugin.html" target="_blank"&gt;UNINSTALL PLUGIN&lt;/a&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="show-statements"&gt;&lt;code&gt;SHOW&lt;/code&gt; Statements&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="http://dev.mysql.com/doc/refman/9.7/en/show-authors.html" target="_blank"&gt;SHOW AUTHORS&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why is Naomi Cannon bashing MariaDB?</title><link>https://www.fromdual.com/blog/why-is-naomi-cannon-criticising-mariadb/</link><pubDate>Mon, 21 Sep 2026 15:25:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/why-is-naomi-cannon-criticising-mariadb/</guid><description>&lt;p&gt;10 days ago, an article by Naomi Cannon on &lt;a href="https://www.reddit.com/r/mariadb/comments/1wdn11p/mariadb_has_adopted_and_abandoned_about_a_dozen/" target="_blank" title="MariaDB has adopted and abandoned about a dozen storage engines. Any reason TidesDB and DuckDB go differently?"&gt;Reddit&lt;/a&gt; caught my attention; it included a link to the full article on &lt;a href="https://medium.com/@58-fidgety-vile/mariadb-and-the-mystery-of-the-disappearing-storage-engines-49d0e6600ea3" target="_blank" title="MariaDB and the Mystery of the Disappearing Storage Engines"&gt;Medium&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Percona releases Galera Cluster Version 9.7</title><link>https://www.fromdual.com/blog/percona/percona-xtradb-galera-cluster-9-7-released/</link><pubDate>Mon, 14 Sep 2026 11:33:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/percona/percona-xtradb-galera-cluster-9-7-released/</guid><description>&lt;p&gt;Finally, some good news again!&lt;/p&gt;&#10;&lt;h2 id="what-has-happened-so-far"&gt;What has happened so far&lt;/h2&gt;&#10;&lt;p&gt;After MariaDB Corp. acquired Codership OY—and with it, Galera Cluster for MySQL—in May 2025 [ &lt;a href="https://www.infoworld.com/article/3999634/mariadbs-acquisition-of-codership-why-enterprises-should-care.html" target="_blank" title="MariaDB’s acquisition of Codership: Why enterprises should care"&gt;1&lt;/a&gt; ], then announced the discontinuation of support for Galera Cluster for MySQL 8.4 at the end of September 2026 [ &lt;a href="https://www.theregister.com/databases/2026/07/30/mariadb-again-faces-questions-over-galeras-open-source-future/5280975" target="_blank" title="MariaDB again faces questions over Galera's open source future"&gt;2&lt;/a&gt; ], and subsequently stated that it would no longer support Galera Cluster (for MariaDB!) in the Community Edition [ &lt;a href="https://www.theregister.com/software/2026/03/09/mariadb-backs-down-on-galera-removal-after-community-outcry/5224684" target="_blank" title="MariaDB backs down on Galera removal after community outcry"&gt;3&lt;/a&gt; ], there was a loud outcry from the community. MariaDB Corp. then made a partial retreat (“&lt;em&gt;We’ve thoroughly considered your feedback and decided that &lt;strong&gt;now is not the time&lt;/strong&gt; for a major change&lt;/em&gt;,”). A clear commitment to continued support for Galera Cluster in the Community Edition sounds different.&lt;/p&gt;</description></item><item><title>Recovering PostgreSQL Data When Blocks Are Corrupted</title><link>https://www.fromdual.com/blog/postgresql/recovering-postgresql-data-when-blocks-are-corrupt/</link><pubDate>Tue, 01 Sep 2026 10:12:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/postgresql/recovering-postgresql-data-when-blocks-are-corrupt/</guid><description>&lt;p&gt;As part of our work on “PostgreSQL for Dolphins and Sea Lions,” I also enjoy reading the PostgreSQL &lt;a href="https://www.postgresql.org/list/" target="_blank"&gt;mailing lists&lt;/a&gt; to see what kinds of problems come up and how they’re solved.&lt;/p&gt;</description></item><item><title>Making the PostgreSQL Documentation Even Better</title><link>https://www.fromdual.com/blog/postgresql/improve-postgresql-documentation/</link><pubDate>Tue, 11 Aug 2026 08:40:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/postgresql/improve-postgresql-documentation/</guid><description>&lt;p&gt;While working on our project “PostgreSQL for Dolphins and Sea Lions,” I pored over the PostgreSQL documentation on &lt;a href="https://www.postgresql.org/docs/current/warm-standby.html" target="_blank" title="Log-Shipping Standby Servers"&gt;replication&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Artificially Delayed Replication with PostgreSQL</title><link>https://www.fromdual.com/blog/postgresql/artificially-delayed-replication-with-postgresql/</link><pubDate>Mon, 03 Aug 2026 09:53:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/postgresql/artificially-delayed-replication-with-postgresql/</guid><description>&lt;p&gt;While working on our project titled “PostgreSQL for Dolphins and Sea Lions,” I pored over the PostgreSQL documentation on &lt;a href="https://www.postgresql.org/docs/current/warm-standby.html" target="_blank" title="Log-Shipping Standby Servers"&gt;replication&lt;/a&gt;. What struck me was that PostgreSQL does NOT support artificially delayed replication—at least according to this documentation.&lt;/p&gt;</description></item><item><title>PostgreSQL Point-in-Time Recovery with Oops-Queries</title><link>https://www.fromdual.com/blog/postgresql/postgresql-point-in-time-recovery-with-oops-queries/</link><pubDate>Wed, 22 Jul 2026 17:26:00 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/postgresql/postgresql-point-in-time-recovery-with-oops-queries/</guid><description>&lt;p&gt;While working on the topic “PostgreSQL for Dolphins and Sea Lions,” I discovered that in the PostgreSQL universe, the topic of point-in-time recovery tends to be sidestepped when it comes to specific statements or transactions. And when examples are provided, they primarily focus on DDL statements rather than DML statements.&lt;/p&gt;</description></item><item><title>What is the quickest way to load data into the database?</title><link>https://www.fromdual.com/blog/load-data-quick-into-the-database/</link><pubDate>Wed, 11 Feb 2026 10:04:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/load-data-quick-into-the-database/</guid><description>&lt;p&gt;We had some really exciting problems to solve for the last customer! Especially because the database wasn&amp;rsquo;t exactly small.&lt;/p&gt;</description></item><item><title>How much space does NULL need?</title><link>https://www.fromdual.com/blog/how-much-space-does-null-need/</link><pubDate>Sun, 08 Feb 2026 16:15:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/how-much-space-does-null-need/</guid><description>&lt;p&gt;The last time I consulted a customer, he came up to me beaming with joy and said that he had taken my advice and changed all the primary key columns from &lt;code&gt;BIGINT&lt;/code&gt; (8 bytes) to &lt;code&gt;INT&lt;/code&gt; (4 bytes) and that had made a big difference! His MySQL 8.4 database is now 750 Gbyte smaller (from 5.5 Tbyte). Nice!&lt;/p&gt;</description></item><item><title>Someone is deleting my shared memory segments!</title><link>https://www.fromdual.com/blog/postgresql/deleted-postgresql-shared-memory-segments/</link><pubDate>Sun, 08 Feb 2026 06:27:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/postgresql/deleted-postgresql-shared-memory-segments/</guid><description>&lt;p&gt;When we work with PostgreSQL under our &lt;a href="https://www.fromdual.com/myenv/"&gt;myEnv&lt;/a&gt;, we regularly get shared memory segment errors. Example:&lt;/p&gt;</description></item><item><title>Load CSV files into the database</title><link>https://www.fromdual.com/blog/load-csv-files-into-the-database/</link><pubDate>Fri, 06 Feb 2026 18:04:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/load-csv-files-into-the-database/</guid><description>&lt;p&gt;Recently, I wanted to display the places of residence of the members of my club on a map for a personal gimmick (&lt;a href="https://www.shinguz.ch/computer/gis/igoc-mitglieder/" target="_blank"&gt;IGOC members&lt;/a&gt;). I knew the addresses of the club members. But not the coordinates of their places of residence.&lt;/p&gt;</description></item><item><title>We build a data warehouse from the General Query Log</title><link>https://www.fromdual.com/blog/we-build-a-data-warehouse-from-the-general-query-log/</link><pubDate>Wed, 31 Jan 2024 16:41:13 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/we-build-a-data-warehouse-from-the-general-query-log/</guid><description>&lt;p&gt;The design of a data warehouse differs from relational design. Data warehouses are often designed according to the concept of the &lt;a href="https://en.wikipedia.org/wiki/Star_schema" target="_blank" title="Star Schema on Wikipedia"&gt;star schema&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Linux Container with Incus for focmm unit testing</title><link>https://www.fromdual.com/blog/linux-container-with-lxd-for-focmm-unit-testing/</link><pubDate>Thu, 13 Oct 2022 19:11:40 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/linux-container-with-lxd-for-focmm-unit-testing/</guid><description>&lt;p&gt;Currently we are in the testing phase of the next release of our &lt;a href="https://www.fromdual.com/fromdual-ops-center" title="FromDual Ops Center"&gt;Ops Center&lt;/a&gt; (&lt;code&gt;focmm&lt;/code&gt;). This testing is quite complex because it includes testing the interaction of various different components like a &lt;a href="https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/" target="_blank" title="What is MariaDB Galera Cluster?"&gt;MariaDB Galera Cluster&lt;/a&gt;, a &lt;a href="https://galeracluster.com/library/documentation/glb.html" target="_blank" title="Galera Load Balancer"&gt;Galera Load Balancer&lt;/a&gt;, a &lt;a href="https://en.wikipedia.org/wiki/Virtual_IP_address" target="_blank" title="Virtual IP address"&gt;virtual IP&lt;/a&gt;, etc.&lt;/p&gt;</description></item><item><title>Data Warehouse Design</title><link>https://www.fromdual.com/blog/data-warehouse-design/</link><pubDate>Wed, 16 Jun 2021 23:02:43 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/data-warehouse-design/</guid><description>&lt;p&gt;This is my cheat sheet for dimensional modelling design techniques of a data warehouse (DWH) according to &lt;a href="https://www.amazon.de/Data-Warehouse-Toolkit-Definitive-Dimensional/dp/1118530802" target="_blank"&gt;Kimball/Ross&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Query performance comparison between MariaDB ColumnStore and other Storage Engines</title><link>https://www.fromdual.com/blog/query-performance-comparison-between-mariadb-column-store-and-other-storage-engines/</link><pubDate>Thu, 03 Jun 2021 15:53:51 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/query-performance-comparison-between-mariadb-column-store-and-other-storage-engines/</guid><description>&lt;p&gt;Storage Engines like InnoDB, Aria and MyISAM are Row Stores. They store rows one after the other in blocks or even directly in a single file (MyISAM). On the other hand a Column Store like MariaDB ColumnStore stores all the same attributes (columns) of the rows together in chunks.&lt;/p&gt;</description></item><item><title>Create a single-node MariaDB ColumnStore test installation</title><link>https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/</link><pubDate>Wed, 19 May 2021 19:37:50 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#harware-requirements"&gt;Hardware requirements&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#os-linux-settings"&gt;O/S (Linux) settings&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#configuration"&gt;Configuration&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#cross-engine-join-user"&gt;Cross Engine Join User&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#start-colunstore"&gt;Start ColumnStore&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#create-cross-egnine-join-user-in-the-database"&gt;Create the Cross Engine Join User in the database&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#columnstore-schemas"&gt;MariaDB ColumnStore schemas&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#server-variables-and-status-variables"&gt;Server System Variables and Server Status Variables&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#columnstore-on-the-file-system"&gt;MariaDB ColumnStore on the file system&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#creating-first-table"&gt;Creating our first table&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#querying-and-changing-data"&gt;Querying and changing data in MariaDB ColumnStore&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#using-sequences-instead-of-auto-increment"&gt;MariaDB ColumnStore using sequences instead of &lt;code&gt;AUTO_INCREMENT&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#query-execution-plan"&gt;MariaDB ColumnStore Query Execution Plan&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;For a long time I wanted to investigate a bit more into the MariaDB ColumnStore architecture. Now I took the time to start with.&lt;/p&gt;</description></item><item><title>Do not trust other peoples benchmarks!</title><link>https://www.fromdual.com/blog/do-not-trust-other-peoples-benchmarks/</link><pubDate>Tue, 06 Apr 2021 13:26:06 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/do-not-trust-other-peoples-benchmarks/</guid><description>&lt;p&gt;Because they do NOT reflect your problems.&lt;/p&gt;&#10;&lt;p&gt;One of our customers upgraded last month from MariaDB 10.2 to MariaDB 10.5. In the same change he also converted all his data warehouse (DWH)/BI tables from MyISAM to Aria. An all this, naturally, without testing. And it miserably failed! And then we were under heavy time pressure to make things working again&amp;hellip;&lt;/p&gt;</description></item><item><title>MySQL Binary Log Filter does not work</title><link>https://www.fromdual.com/blog/binary-log-filter-does-not-work/</link><pubDate>Wed, 21 Oct 2015 05:23:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/binary-log-filter-does-not-work/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;We use the following binary log filter for filtering out some schemata.&lt;/p&gt;</description></item><item><title>MySQL Replication Slave is lagging more and more</title><link>https://www.fromdual.com/blog/replication-slave-is-lagging-more-and-more/</link><pubDate>Fri, 18 Sep 2015 05:36:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-slave-is-lagging-more-and-more/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;My MySQL Replication Slave is lagging more and more and I have no clue why. This happens since last weekends application change. I see that one Core is running at 100% user time but the I/O system is nearly completely idle. Any help is appreciated!&lt;/p&gt;</description></item><item><title>MySQL Replication Slave with corrupt Relay Logs</title><link>https://www.fromdual.com/blog/replication-slave-with-corrupt-relay-logs/</link><pubDate>Thu, 16 Jul 2015 19:19:36 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/replication-slave-with-corrupt-relay-logs/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;MySQL Replication Slave stuck because its disk run full. After restarting the Slave MySQL replication was broken with the following error:&lt;/p&gt;</description></item><item><title>Support policy for MariaDB, MySQL and PostgreSQL</title><link>https://www.fromdual.com/blog/support-policy-for-mariadb-mysql-and-postresql/</link><pubDate>Tue, 23 Dec 2014 15:46:54 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/support-policy-for-mariadb-mysql-and-postresql/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#distribution-maintenance-policies"&gt;Distribution maintenance policies&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#lifetime-support-matrix-for-mariadb-releases" title="MariaDB Lifetime Support Matrix for MariaDB Releases"&gt;MariaDB Lifetime Support Matrix for MariaDB Releases&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#mariadb-corp-enterprise-support-subscriptions" title="MariaDB Corp Enterprise Support Subscriptions"&gt;MariaDB Corp Enterprise Support Subscriptions&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#mysql-lifetime-support-matrix-for-mysql-releases" title="MySQL Lifetime Support Matrix for MySQL Releases"&gt;MySQL Lifetime Support Matrix for MySQL Releases&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#oracle-corp-enterprise-support-subscriptions-for-mysql" title="Oracle Corp Enterprise Support Subscriptions for MySQL"&gt;Oracle Corp Enterprise Support Subscriptions for MySQL&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#postgresql-versioning-policy"&gt;PostgreSQL Versioning Policy&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#database-support-by-fromdual"&gt;Database Support by FromDual&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="distribution-maintenance-policies"&gt;Distribution maintenance policies&lt;/h2&gt;&#10;&lt;p&gt;Maintenance policies for Long Term Support (LTS) releases of common distributions:&lt;/p&gt;</description></item><item><title>MariaDB and MySQL PERFORMANCE_SCHEMA Hints</title><link>https://www.fromdual.com/blog/mysql-performance-schema-hints/</link><pubDate>Sun, 14 Jul 2013 09:29:09 +0200</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-performance-schema-hints/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#accounts-not-properly-closing"&gt;Accounts not properly closing connections&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#unused-indexes"&gt;Unused indexes&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#who-created-temporary-tables"&gt;Who created temporary (disk) tables&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#accounts-which-never-connected"&gt;Accounts which never connected since last start-up&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#user-which-never-connected"&gt;Users which never connected since last start-up&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#totally-unused-accounts"&gt;Totally unused accounts (never connected since last restart and not used to check Stored Program or View privileges) since last start-up&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#show-full-processlist"&gt;&lt;code&gt;SHOW FULL PROCESSLIST&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#storage-engine-per-schema"&gt;Storage Engines per schema&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#tables-without-primary-key"&gt;Tables without a Primary Key&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#bad-sql-queries-of-users"&gt;Bad SQL queries of users&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#show-profile-in-performance_schema"&gt;&lt;code&gt;SHOW PROFILE&lt;/code&gt; in &lt;code&gt;PERFORMANCE_SCHEMA&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#select-insert-update-and-delete-per-table"&gt;&lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt; and &lt;code&gt;DELETE&lt;/code&gt; per table&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#top-long-running-queries"&gt;Top long running queries&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#tables-never-written-to"&gt;Tables never written to&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#dml-ddl-dcl-per-account"&gt;DML, DDL and DCL per account&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#erroneous-mysql-queries"&gt;Finding syntactically wrong/erroneous MySQL queries&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#finding-queries-served-by-query-cache"&gt;Finding queries served by MySQL Query Cache&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#grant-sys-schema-access"&gt;Grant access to &lt;code&gt;sys&lt;/code&gt; schema to another user&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#grant-ps-schema-access"&gt;Grant access to &lt;code&gt;PERFORMANCE_SCHEMA&lt;/code&gt; schema to another user&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#innodb-locks"&gt;Find InnoDB Locks&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#metadata-locks"&gt;Find Metadata Locks&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#statements-before-sleep"&gt;What did a Connection before sleeping?&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#how-many-statements-did-another-connection"&gt;How many statements did another (sleeping) connection?&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="%22/blog/myisam-locking-and-who-is-the-evil#performance-schema%22" title="MyISAM locking and who is the evil?"&gt;MyISAM locking&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#connections-per-user"&gt;Connections per user&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#connections-per-user-and-ip"&gt;Connections per user and IP&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#accounts-which-could-not-connect"&gt;Accounts which could not connect or with connection errors&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#temporary-tables-filling-disk"&gt;Temporary tables filling my disk&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#who-is-writing-to-the-binary-log"&gt;Who is writing to the binary log&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#average-binlog-transaction-size"&gt;Average binlog transaction size&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#result-size-of-select-statement"&gt;Result size of &lt;code&gt;SELECT&lt;/code&gt; statement&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#find-open-long-running-transactions"&gt;Find open long running transactions&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#duplicate-and-redundant-indices"&gt;Duplicate and redundant indices&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="mariadb"&gt;MariaDB&lt;/h2&gt;&#10;&lt;p&gt;On MariaDB you have to enable the Performance Schema first before use:&lt;/p&gt;</description></item><item><title> Be careful when using SAN</title><link>https://www.fromdual.com/blog/be-careful-when-using-san/</link><pubDate>Sun, 06 Mar 2011 10:13:39 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/be-careful-when-using-san/</guid><description>&lt;p&gt;Be careful when using SAN (&lt;a href="http://en.wikipedia.org/wiki/Storage_area_network" target="_blank"&gt;Storage Area Networks&lt;/a&gt;) or similar shared storage solutions (and any other &lt;a href="http://en.wikipedia.org/wiki/Virtualization" target="_blank"&gt;virtualization&lt;/a&gt;, consolidation or &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank"&gt;cloud&lt;/a&gt; solutions).&lt;/p&gt;</description></item><item><title>The battle against Oracle is probably over but has the real war begun yet?</title><link>https://www.fromdual.com/blog/battle-against-oracle-is-probably-over/</link><pubDate>Wed, 20 Jan 2010 09:36:00 +0100</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/battle-against-oracle-is-probably-over/</guid><description>&lt;p&gt;According to different sources from the web the decision about the Oracle - Sun merger has been approved by the European commission soon. So at least in the West it is clear what is going on. Let us see what the East decides&amp;hellip; [ &lt;a href="http://news.yahoo.com/s/pcworld/20100118/tc_pcworld/oraclesunmergerfoesheadeast" target="_blank" title="Yahoo! NEWS"&gt;1&lt;/a&gt; ], [ &lt;a href="http://online.wsj.com/article/SB10001424052748704561004575013340483500722.html?mod=googlenews_wsj" target="_blank" title="The Wall Street Journal"&gt;2&lt;/a&gt; ].&lt;/p&gt;</description></item></channel></rss>