<?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>Wed, 29 Apr 2026 08:53:00 +0200</lastBuildDate><atom:link href="https://www.fromdual.com/blog/index.xml" rel="self" type="application/rss+xml"/><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>We had some really exciting problems to solve for the last customer! Especially because the database wasn&amp;rsquo;t exactly small.&lt;/p></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>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>BIGINT&lt;/code> (8 bytes) to &lt;code>INT&lt;/code> (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></description></item><item><title>Someone is deleting my shared memory segments!</title><link>https://www.fromdual.com/blog/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/deleted-postgresql-shared-memory-segments/</guid><description>&lt;p>When we work with PostgreSQL under our &lt;a href="https://www.fromdual.com/myenv/">myEnv&lt;/a>, we regularly get shared memory segment errors. Example:&lt;/p></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>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">IGOC members&lt;/a>). I knew the addresses of the club members. But not the coordinates of their places of residence.&lt;/p></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>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">star schema&lt;/a>.&lt;/p></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>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">Ops Center&lt;/a> (&lt;code>focmm&lt;/code>). 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?">MariaDB Galera Cluster&lt;/a>, a &lt;a href="https://galeracluster.com/library/documentation/glb.html" target="_blank" title="Galera Load Balancer">Galera Load Balancer&lt;/a>, a &lt;a href="https://en.wikipedia.org/wiki/Virtual_IP_address" target="_blank" title="Virtual IP address">virtual IP&lt;/a>, etc.&lt;/p></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>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">Kimball/Ross&lt;/a>.&lt;/p></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>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></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">Table of Contents&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#harware-requirements">Hardware requirements&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#os-linux-settings">O/S (Linux) settings&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#installation">Installation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#configuration">Configuration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#cross-engine-join-user">Cross Engine Join User&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#start-colunstore">Start ColumnStore&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#create-cross-egnine-join-user-in-the-database">Create the Cross Engine Join User in the database&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#columnstore-schemas">MariaDB ColumnStore schemas&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#server-variables-and-status-variables">Server System Variables and Server Status Variables&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#columnstore-on-the-file-system">MariaDB ColumnStore on the file system&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#creating-first-table">Creating our first table&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#querying-and-changing-data">Querying and changing data in MariaDB ColumnStore&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#using-sequences-instead-of-auto-increment">MariaDB ColumnStore using sequences instead of &lt;code>AUTO_INCREMENT&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.fromdual.com/blog/create-a-single-node-mariadb-columnstore-test-installation/#query-execution-plan">MariaDB ColumnStore Query Execution Plan&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>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></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>Because they do NOT reflect your problems.&lt;/p>
&lt;p>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></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">Problem&lt;/h2>
&lt;p>We use the following binary log filter for filtering out some schemata.&lt;/p></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">Problem&lt;/h2>
&lt;p>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></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">Problem&lt;/h2>
&lt;p>MySQL Replication Slave stuck because its disk run full. After restarting the Slave MySQL replication was broken with the following error:&lt;/p></description></item><item><title>Support policy for MariaDB, MySQL and PostgreSQL</title><link>https://www.fromdual.com/blog/support-for-mysql-from-oracle/</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-for-mysql-from-oracle/</guid><description>&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="#distribution-maintenance-policies">Distribution maintenance policies&lt;/a>&lt;/li>
&lt;li>&lt;a href="#lifetime-support-matrix-for-mariadb-releases" title="MariaDB Lifetime Support Matrix for MariaDB Releases">MariaDB Lifetime Support Matrix for MariaDB Releases&lt;/a>&lt;/li>
&lt;li>&lt;a href="#mariadb-corp-enterprise-support-subscriptions" title="MariaDB Corp Enterprise Support Subscriptions">MariaDB Corp Enterprise Support Subscriptions&lt;/a>&lt;/li>
&lt;li>&lt;a href="#mysql-lifetime-support-matrix-for-mysql-releases" title="MySQL Lifetime Support Matrix for MySQL Releases">MySQL Lifetime Support Matrix for MySQL Releases&lt;/a>&lt;/li>
&lt;li>&lt;a href="#oracle-corp-enterprise-support-subscriptions-for-mysql" title="Oracle Corp Enterprise Support Subscriptions for MySQL">Oracle Corp Enterprise Support Subscriptions for MySQL&lt;/a>&lt;/li>
&lt;li>&lt;a href="#postgresql-versioning-policy">PostgreSQL Versioning Policy&lt;/a>&lt;/li>
&lt;li>&lt;a href="#database-support-by-fromdual">Database Support by FromDual&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="distribution-maintenance-policies">Distribution maintenance policies&lt;/h2>
&lt;p>Maintenance policies for Long Term Support (LTS) releases of common distributions:&lt;/p></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">Table of Contents&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="#accounts-not-properly-closing">Accounts not properly closing connections&lt;/a>&lt;/li>
&lt;li>&lt;a href="#unused-indexes">Unused indexes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#who-created-temporary-tables">Who created temporary (disk) tables&lt;/a>&lt;/li>
&lt;li>&lt;a href="#accounts-which-never-connected">Accounts which never connected since last start-up&lt;/a>&lt;/li>
&lt;li>&lt;a href="#user-which-never-connected">Users which never connected since last start-up&lt;/a>&lt;/li>
&lt;li>&lt;a href="#totally-unused-accounts">Totally unused accounts (never connected since last restart and not used to check Stored Program or View privileges) since last start-up&lt;/a>&lt;/li>
&lt;li>&lt;a href="#show-full-processlist">&lt;code>SHOW FULL PROCESSLIST&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#storage-engine-per-schema">Storage Engines per schema&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tables-without-primary-key">Tables without a Primary Key&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bad-sql-queries-of-users">Bad SQL queries of users&lt;/a>&lt;/li>
&lt;li>&lt;a href="#show-profile-in-performance_schema">&lt;code>SHOW PROFILE&lt;/code> in &lt;code>PERFORMANCE_SCHEMA&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#select-insert-update-and-delete-per-table">&lt;code>SELECT&lt;/code>, &lt;code>INSERT&lt;/code>, &lt;code>UPDATE&lt;/code> and &lt;code>DELETE&lt;/code> per table&lt;/a>&lt;/li>
&lt;li>&lt;a href="#top-long-running-queries">Top long running queries&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tables-never-written-to">Tables never written to&lt;/a>&lt;/li>
&lt;li>&lt;a href="#dml-ddl-dcl-per-account">DML, DDL and DCL per account&lt;/a>&lt;/li>
&lt;li>&lt;a href="#erroneous-mysql-queries">Finding syntactically wrong/erroneous MySQL queries&lt;/a>&lt;/li>
&lt;li>&lt;a href="#finding-queries-served-by-query-cache">Finding queries served by MySQL Query Cache&lt;/a>&lt;/li>
&lt;li>&lt;a href="#grant-sys-schema-access">Grant access to &lt;code>sys&lt;/code> schema to another user&lt;/a>&lt;/li>
&lt;li>&lt;a href="#grant-ps-schema-access">Grant access to &lt;code>PERFORMANCE_SCHEMA&lt;/code> schema to another user&lt;/a>&lt;/li>
&lt;li>&lt;a href="#innodb-locks">Find InnoDB Locks&lt;/a>&lt;/li>
&lt;li>&lt;a href="#metadata-locks">Find Metadata Locks&lt;/a>&lt;/li>
&lt;li>&lt;a href="#statements-before-sleep">What did a Connection before sleeping?&lt;/a>&lt;/li>
&lt;li>&lt;a href="#how-many-statements-did-another-connection">How many statements did another (sleeping) connection?&lt;/a>&lt;/li>
&lt;li>&lt;a href="%22/blog/myisam-locking-and-who-is-the-evil#performance-schema%22" title="MyISAM locking and who is the evil?">MyISAM locking&lt;/a>&lt;/li>
&lt;li>&lt;a href="#connections-per-user">Connections per user&lt;/a>&lt;/li>
&lt;li>&lt;a href="#connections-per-user-and-ip">Connections per user and IP&lt;/a>&lt;/li>
&lt;li>&lt;a href="#accounts-which-could-not-connect">Accounts which could not connect or with connection errors&lt;/a>&lt;/li>
&lt;li>&lt;a href="#temporary-tables-filling-disk">Temporary tables filling my disk&lt;/a>&lt;/li>
&lt;li>&lt;a href="#who-is-writing-to-the-binary-log">Who is writing to the binary log&lt;/a>&lt;/li>
&lt;li>&lt;a href="#average-binlog-transaction-size">Average binlog transaction size&lt;/a>&lt;/li>
&lt;li>&lt;a href="#result-size-of-select-statement">Result size of &lt;code>SELECT&lt;/code> statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#find-open-long-running-transactions">Find open long running transactions&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="mariadb">MariaDB&lt;/h2>
&lt;p>On MariaDB you have to enable the Performance Schema first before use:&lt;/p></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>Be careful when using SAN (&lt;a href="http://en.wikipedia.org/wiki/Storage_area_network" target="_blank">Storage Area Networks&lt;/a>) or similar shared storage solutions (and any other &lt;a href="http://en.wikipedia.org/wiki/Virtualization" target="_blank">virtualization&lt;/a>, consolidation or &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">cloud&lt;/a> solutions).&lt;/p></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>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">1&lt;/a> ], [ &lt;a href="http://online.wsj.com/article/SB10001424052748704561004575013340483500722.html?mod=googlenews_wsj" target="_blank" title="The Wall Street Journal">2&lt;/a> ].&lt;/p></description></item></channel></rss>