<?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&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/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&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;
&lt;ul&gt;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&lt;/ul&gt;
&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;
&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;
&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;
&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;
&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-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"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#distribution-maintenance-policies"&gt;Distribution maintenance policies&lt;/a&gt;&lt;/li&gt;
&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;
&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;
&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;
&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;
&lt;li&gt;&lt;a href="#postgresql-versioning-policy"&gt;PostgreSQL Versioning Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#database-support-by-fromdual"&gt;Database Support by FromDual&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="distribution-maintenance-policies"&gt;Distribution maintenance policies&lt;/h2&gt;
&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;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#accounts-not-properly-closing"&gt;Accounts not properly closing connections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#unused-indexes"&gt;Unused indexes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#who-created-temporary-tables"&gt;Who created temporary (disk) tables&lt;/a&gt;&lt;/li&gt;
&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;
&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;
&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;
&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;
&lt;li&gt;&lt;a href="#storage-engine-per-schema"&gt;Storage Engines per schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tables-without-primary-key"&gt;Tables without a Primary Key&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bad-sql-queries-of-users"&gt;Bad SQL queries of users&lt;/a&gt;&lt;/li&gt;
&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;
&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;
&lt;li&gt;&lt;a href="#top-long-running-queries"&gt;Top long running queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tables-never-written-to"&gt;Tables never written to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dml-ddl-dcl-per-account"&gt;DML, DDL and DCL per account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#erroneous-mysql-queries"&gt;Finding syntactically wrong/erroneous MySQL queries&lt;/a&gt;&lt;/li&gt;
&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;
&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;
&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;
&lt;li&gt;&lt;a href="#innodb-locks"&gt;Find InnoDB Locks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#metadata-locks"&gt;Find Metadata Locks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#statements-before-sleep"&gt;What did a Connection before sleeping?&lt;/a&gt;&lt;/li&gt;
&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;
&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;
&lt;li&gt;&lt;a href="#connections-per-user"&gt;Connections per user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#connections-per-user-and-ip"&gt;Connections per user and IP&lt;/a&gt;&lt;/li&gt;
&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;
&lt;li&gt;&lt;a href="#temporary-tables-filling-disk"&gt;Temporary tables filling my disk&lt;/a&gt;&lt;/li&gt;
&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;
&lt;li&gt;&lt;a href="#average-binlog-transaction-size"&gt;Average binlog transaction size&lt;/a&gt;&lt;/li&gt;
&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;
&lt;li&gt;&lt;a href="#find-open-long-running-transactions"&gt;Find open long running transactions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mariadb"&gt;MariaDB&lt;/h2&gt;
&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>