Alexander Rubin, Author at Percona Database Performance Blog Sat, 17 Feb 2024 00:45:30 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.2 https://www.percona.com/blog/wp-content/uploads/2023/02/cropped-percona-favicon-32x32.png Alexander Rubin, Author at Percona Database Performance Blog 32 32 76301791 A Quick Look into TiDB Performance on a Single Server https://www.percona.com/blog/a-quick-look-into-tidb-performance-on-a-single-server/ https://www.percona.com/blog/a-quick-look-into-tidb-performance-on-a-single-server/#comments Thu, 24 Jan 2019 15:18:33 +0000 https://www.percona.com/blog/?p=54852 TiDB is an open-source distributed database developed by PingCAP. This is a very interesting project as it is can be used as a MySQL drop-in replacement: it implements MySQL protocol, and basically emulates MySQL. PingCAP defines TiDB is as a “one-stop data warehouse for both OLTP (Online Transactional Processing) and OLAP (Online Analytical Processing) workloads”. […]]]> https://www.percona.com/blog/a-quick-look-into-tidb-performance-on-a-single-server/feed/ 7 54852 MySQL 8.0.14: A Road to Parallel Query Execution is Wide Open! https://www.percona.com/blog/mysql-8-0-14-a-road-to-parallel-query-execution-is-wide-open/ https://www.percona.com/blog/mysql-8-0-14-a-road-to-parallel-query-execution-is-wide-open/#comments Wed, 23 Jan 2019 18:09:48 +0000 https://www.percona.com/blog/?p=54981 For a very long time – since when multiple CPU cores were commonly available – I dreamed about MySQL having the ability to execute queries in parallel. This feature was lacking from MySQL, and I wrote a lots of posts on how to emulate parallel queries in MySQL using different methods: from simple parallel bash […]]]> https://www.percona.com/blog/mysql-8-0-14-a-road-to-parallel-query-execution-is-wide-open/feed/ 4 54981 Using Parallel Query with Amazon Aurora for MySQL https://www.percona.com/blog/using-parallel-query-with-amazon-aurora-for-mysql/ https://www.percona.com/blog/using-parallel-query-with-amazon-aurora-for-mysql/#comments Thu, 17 Jan 2019 18:31:14 +0000 https://www.percona.com/blog/?p=54791 Parallel query execution is my favorite, non-existent, feature in MySQL. In all versions of MySQL – at least at the time of writing – when you run a single query it will run in one thread, effectively utilizing one CPU core only. Multiple queries run at the same time will be using different threads and will […]]]> https://www.percona.com/blog/using-parallel-query-with-amazon-aurora-for-mysql/feed/ 4 54791 Should You Use ClickHouse as a Main Operational Database? https://www.percona.com/blog/should-you-use-clickhouse-as-a-main-operational-database/ https://www.percona.com/blog/should-you-use-clickhouse-as-a-main-operational-database/#comments Mon, 14 Jan 2019 16:34:56 +0000 https://www.percona.com/blog/?p=54576 First of all, this post is not a recommendation but more like a “what if” story. What if we use ClickHouse (which is a columnar analytical database) as our main datastore? Well, typically, an analytical database is not a replacement for a transactional or key/value datastore. However, ClickHouse is super efficient for timeseries and provides […]]]> https://www.percona.com/blog/should-you-use-clickhouse-as-a-main-operational-database/feed/ 10 54576 Nondeterministic Functions in MySQL (i.e. rand) Can Surprise You https://www.percona.com/blog/nondeterministic-functions-in-mysql-i-e-rand-can-surprise-you/ https://www.percona.com/blog/nondeterministic-functions-in-mysql-i-e-rand-can-surprise-you/#comments Wed, 05 Dec 2018 18:44:26 +0000 https://www.percona.com/blog/?p=53997 Working on a test case with sysbench, I encountered this: [crayon-664c89abdc162583707790/] I was really surprised. First, and the most important, id is a primary key and the rand() function should produce just one value. How come it returns two rows? Second, why is the response time 0.30 sec? That seems really high for a primary […]]]> https://www.percona.com/blog/nondeterministic-functions-in-mysql-i-e-rand-can-surprise-you/feed/ 6 53997 One Billion Tables in MySQL 8.0 with ZFS https://www.percona.com/blog/one-billion-tables-in-mysql-8-0-with-zfs/ https://www.percona.com/blog/one-billion-tables-in-mysql-8-0-with-zfs/#comments Mon, 22 Oct 2018 14:22:10 +0000 https://www.percona.com/blog/?p=53315 The short versionI created > one billion InnoDB tables in MySQL 8.0 (tables, not rows) just for fun. Here is the proof: [crayon-664c89abdcbf1718559924/] Yes, it took 6 hours and 57 minutes to count them all!Why does anyone need one billion tables?In my previous blog post, I created and tested MySQL 8.0 with 40 million tables (that […]]]> https://www.percona.com/blog/one-billion-tables-in-mysql-8-0-with-zfs/feed/ 9 53315 Webinar: MongoDB 4.0 Features – Transactions & More https://www.percona.com/blog/mongodb-4-0-features-transactions/ Wed, 17 Oct 2018 20:58:26 +0000 https://www.percona.com/blog/?p=53301 Please join Percona’s Principal Consultant, Alex Rubin, as he presents MongoDB 4.0 Features – Transactions & More on Thursday, October 18th at 11:00 AM PDT (UTC-7) / 2:00 PM EDT (UTC-4). Watch Now   MongoDB 4.0 adds support for multi-document ACID transactions, combining the document model with ACID guarantees. Through snapshot isolation, transactions provide a […]]]> 53301 Upcoming Webinar Thurs 9/27: Best Practices Using Indexes in MongoDB https://www.percona.com/blog/webinar-best-practices-indexes-mongodb/ Tue, 25 Sep 2018 13:41:33 +0000 https://www.percona.com/blog/?p=52831 Please join Percona’s Principal Architect Alex Rubin as he presents Best Practices Using Indexes in MongoDB on Thursday, September 27th at 11:00 AM PDT (UTC-7) / 2:00 PM EDT (UTC-4).Register Now Indexes support the efficient execution of queries in MongoDB. Without indexes, MongoDB must perform a collection scan, i.e. scan every document in a collection, to […]]]> 52831 40 million tables in MySQL 8.0 with ZFS https://www.percona.com/blog/40-million-tables-in-mysql-8-0-with-zfs/ https://www.percona.com/blog/40-million-tables-in-mysql-8-0-with-zfs/#comments Mon, 03 Sep 2018 12:02:35 +0000 https://www.percona.com/blog/?p=52151 In my previous blog post about millions of table in MySQL 8, I was able to create one million tables and test the performance of it. My next challenge is to create 40 million tables in MySQL 8 using shared tablespaces (one tablespace per schema). In this blog post I’m showing how to do it […]]]> https://www.percona.com/blog/40-million-tables-in-mysql-8-0-with-zfs/feed/ 9 52151 Using AWS EC2 instance store vs EBS for MySQL: how to increase performance and decrease cost https://www.percona.com/blog/using-aws-ec2-instance-store-vs-ebs-for-mysql-how-to-increase-performance-and-decrease-cost/ https://www.percona.com/blog/using-aws-ec2-instance-store-vs-ebs-for-mysql-how-to-increase-performance-and-decrease-cost/#comments Mon, 20 Aug 2018 12:07:14 +0000 https://www.percona.com/blog/?p=51664 If you are using large EBS GP2 volumes for MySQL (i.e. 10TB+) on AWS EC2, you can increase performance and save a significant amount of money by moving to local SSD (NVMe) instance storage. Interested? Then read on for a more detailed examination of how to achieve cost-benefits and increase performance from this implementation.EBS vs […]]]> https://www.percona.com/blog/using-aws-ec2-instance-store-vs-ebs-for-mysql-how-to-increase-performance-and-decrease-cost/feed/ 10 51664 Why MySQL Stored Procedures, Functions and Triggers Are Bad For Performance https://www.percona.com/blog/why-mysql-stored-procedures-functions-triggers-bad-performance/ https://www.percona.com/blog/why-mysql-stored-procedures-functions-triggers-bad-performance/#comments Thu, 12 Jul 2018 13:19:18 +0000 https://www.percona.com/blog/?p=51183 MySQL stored procedures, functions and triggers, are tempting constructs for application developers. However, as I discovered, there can be an impact on database performance when using MySQL stored routines. Not being entirely sure of what I was seeing during a customer visit, I set out to create some simple tests to measure the impact of […]]]> https://www.percona.com/blog/why-mysql-stored-procedures-functions-triggers-bad-performance/feed/ 7 51183 How to Set Up Replication Between AWS Aurora and an External MySQL Instance https://www.percona.com/blog/how-to-setup-replication-between-aws-aurora-external-mysql-instance/ https://www.percona.com/blog/how-to-setup-replication-between-aws-aurora-external-mysql-instance/#comments Wed, 04 Jul 2018 13:59:30 +0000 https://www.percona.com/blog/?p=43443 Amazon RDS Aurora (MySQL) provides its own low latency replication. Nevertheless, there are cases where it can be beneficial to set up replication from Aurora to an external MySQL server, as Amazon RDS Aurora is based on MySQL and supports native MySQL replication. Here are some examples of when replicating from Amazon RDS Aurora to […]]]> https://www.percona.com/blog/how-to-setup-replication-between-aws-aurora-external-mysql-instance/feed/ 5 43443 What To Do When MySQL Runs Out of Memory https://www.percona.com/blog/what-to-do-when-mysql-runs-out-of-memory-troubleshooting-guide/ https://www.percona.com/blog/what-to-do-when-mysql-runs-out-of-memory-troubleshooting-guide/#comments Thu, 28 Jun 2018 12:00:06 +0000 https://www.percona.com/blog/?p=50495 Troubleshooting crashes is never a fun task, especially if MySQL does not report the cause of the crash. For example, when a MySQL memory issue shows up. Peter Zaitsev wrote a blog post in 2012: Troubleshooting MySQL Memory Usage with lots of useful tips. With the new versions of MySQL (5.7+) and performance_schema, we have […]]]> https://www.percona.com/blog/what-to-do-when-mysql-runs-out-of-memory-troubleshooting-guide/feed/ 3 50495 MongoDB Transactions: Your Very First Transaction with MongoDB 4.0 https://www.percona.com/blog/mongodb-transactions-your-very-first-transaction-with-mongodb-4-0/ https://www.percona.com/blog/mongodb-transactions-your-very-first-transaction-with-mongodb-4-0/#comments Mon, 25 Jun 2018 13:59:08 +0000 https://www.percona.com/blog/?p=50488 MongoDB 4.0 is just around the corner and with rc0 we can get a good idea of what we can expect in the GA version. MongoDB 4.0 will allow transactions to run in a replica set and, in a future release, the MongoDB transaction will work for sharded clusters. This is a really big change!Multi-statement transactions […]]]> https://www.percona.com/blog/mongodb-transactions-your-very-first-transaction-with-mongodb-4-0/feed/ 3 50488 Webinar: MySQL, Percona XtraDB Cluster, ProxySQL, Kubernetes: How they work together https://www.percona.com/blog/upcoming-webinar-tuesday-5-29-mysql-percona-xtradb-cluster-proxysql-kubernetes/ Fri, 25 May 2018 11:54:03 +0000 https://www.percona.com/blog/?p=50320 Please join Percona’s Principal Architect Alex Rubin as he presents MySQL, Percona XtraDB Cluster, ProxySQL, Kubernetes: How they work together to give you a highly available cluster database environment on Tuesday, May 29th at 7:00 AM PDT (UTC-7) / 10:00 AM EDT (UTC-4).Register NowIn this webinar, Alex will discuss how to deploy a highly available […]]]> 50320 Archiving MySQL Tables in ClickHouse https://www.percona.com/blog/archiving-mysql-tables-in-clickhouse/ https://www.percona.com/blog/archiving-mysql-tables-in-clickhouse/#comments Tue, 20 Feb 2018 00:05:16 +0000 https://www.percona.com/blog/?p=47307 In this blog post, I will talk about archiving MySQL tables in ClickHouse for storage and analytics.Why Archive?Hard drives are cheap nowadays, but storing lots of data in MySQL is not practical and can cause all sorts of performance bottlenecks. To name just a few issues: The larger the table and index, the slower the performance […]]]> https://www.percona.com/blog/archiving-mysql-tables-in-clickhouse/feed/ 2 47307 Using MySQL 5.7 Generated Columns to Increase Query Performance https://www.percona.com/blog/using-generated-columns-in-mysql-5-7-to-increase-query-performance/ https://www.percona.com/blog/using-generated-columns-in-mysql-5-7-to-increase-query-performance/#comments Mon, 29 Jan 2018 14:25:54 +0000 https://www.percona.com/blog/?p=47004 In this blog post, we’ll look at ways you can use MySQL 5.7 generated columns (or virtual columns) to improve query performance.IntroductionAbout two years ago I published a blog post about Generated (Virtual) Columns in MySQL 5.7. Since then, it’s been one of my favorite features in the MySQL 5.7 release. The reason is simple: with […]]]> https://www.percona.com/blog/using-generated-columns-in-mysql-5-7-to-increase-query-performance/feed/ 2 47004 SQL – “CREATE TABLE AS SELECT” Statement https://www.percona.com/blog/why-avoid-create-table-as-select-statement/ https://www.percona.com/blog/why-avoid-create-table-as-select-statement/#comments Thu, 11 Jan 2018 00:58:23 +0000 https://www.percona.com/blog/?p=46704 In this blog post, I’ll provide an explanation of why you should avoid using the CREATE TABLE AS SELECT statement.The SQL statement “create table <table_name> as select …” is used to create a normal or temporary table and materialize the result of the select. Some applications use this construct to create a copy of the table. […]]]> https://www.percona.com/blog/why-avoid-create-table-as-select-statement/feed/ 7 46704 Internal Temporary Tables in MySQL 5.7 https://www.percona.com/blog/internal-temporary-tables-mysql-5-7/ https://www.percona.com/blog/internal-temporary-tables-mysql-5-7/#comments Mon, 04 Dec 2017 14:51:38 +0000 https://www.percona.com/blog/?p=44986 In this blog post, I investigate a case of spiking InnoDB Rows inserted in the absence of a write query, and find internal temporary tables to be the culprit.Recently I was investigating an interesting case for a customer. We could see the regular spikes on a graph depicting “InnoDB rows inserted” metric (jumping from 1K/sec […]]]> https://www.percona.com/blog/internal-temporary-tables-mysql-5-7/feed/ 9 44986 One Million Tables in MySQL 8.0 https://www.percona.com/blog/one-million-tables-mysql-8-0/ https://www.percona.com/blog/one-million-tables-mysql-8-0/#comments Mon, 02 Oct 2017 02:26:12 +0000 https://www.percona.com/blog/?p=45426 In my previous blog post, I talked about new general tablespaces in MySQL 8.0. Recently MySQL 8.0.3-rc was released, which includes a new data dictionary. My goal is to create one million tables in MySQL and test the performance.Background questionsQ: Why million tables in MySQL? Is it even realistic? How does this happen?Usually, millions of tables in […]]]> https://www.percona.com/blog/one-million-tables-mysql-8-0/feed/ 5 45426