<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://petrunia.net/2024/02/29/notable-optimizer-fixes-released-in-february-2024/</loc><lastmod>2024-03-01T12:34:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2024/03/01/using-linux-perf-do-we-need-to-pass-identifying-info-as-arguments-to-important-functions/</loc><lastmod>2024-03-17T12:43:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2023/11/20/optimizer-related-fixes-in-current-batch-of-stable-releases/</loc><lastmod>2024-02-29T08:51:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2023/10/11/making-tbl-utf8mb3_key_columnutf8mb4_expr-sargable/</loc><lastmod>2023-10-15T15:23:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2023/10/01/combinatorial-blowups-can-occur-in-name-resolution-too/</loc><lastmod>2023-10-01T18:34:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2023/09/26/analyze-formatjson-now-shows-innodb-buffer-pool-reads/</loc><lastmod>2023-09-26T09:17:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2023/09/23/ucase-is-now-sargable-in-mariadb-lcase-cant-be/</loc><lastmod>2023-09-23T17:15:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2022/07/20/slides-mariadbs-join-optimizer-how-it-works-and-current-fixes/</loc><lastmod>2022-07-20T11:17:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2022/03/29/mariadb-10-9-show-analyze-and-explain-for-connection/</loc><lastmod>2022-03-29T12:26:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/10/05/slides-selectivity-estimates/</loc><lastmod>2021-10-06T16:42:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/07/08/json_table-implementer-notes/</loc><lastmod>2021-07-08T10:54:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/06/21/postgresql-and-on-expressions/</loc><lastmod>2021-06-21T13:03:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/06/05/an-interesting-case-with-key_columnrare_value/</loc><lastmod>2021-06-04T21:12:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/02/09/slides-json-support-news-non-news-and-the-bigger-picture/</loc><lastmod>2021-02-09T17:05:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2021/01/05/speaking-at-fosdem-about-json-in-mariadb/</loc><lastmod>2021-01-05T12:51:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2020/12/28/optimizations-for-min-max-with-implicit-and-explicit-grouping/</loc><lastmod>2020-12-27T21:37:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2020/12/11/replication-at-cluster-edge/</loc><lastmod>2020-12-11T12:11:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2020/11/26/on-json-path-in-mariadb/</loc><lastmod>2020-11-26T11:53:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2020/11/23/slides-and-video-analyze-for-statements-mariadbs-hidden-gem/</loc><lastmod>2020-11-23T20:27:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2020/11/23/slides-and-video-optimizer-trace-walkthrough/</loc><lastmod>2020-11-23T20:00:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2015/11/30/my-proposals-for-percona-live-window-functions-and-analyze-for-statements/</loc><lastmod>2015-11-30T17:05:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/10/11/mariadb-101-better-query-optimization-for-order-by-limit/</loc><lastmod>2014-10-10T23:47:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/10/11/a-discovery-index-condition-pushdown-can-cause-a-slowdown-after-all/</loc><lastmod>2014-10-10T21:56:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/07/14/priority-queue-optimization-for-filesort-is-now-visible-in-mariadb-100/</loc><lastmod>2014-07-14T17:11:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/06/30/new-feature-in-mariadb-101-analyze-statement/</loc><lastmod>2014-07-11T18:37:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/06/30/optimizations-for-derived-tables-in-mysql-56-and-mariadb-55/</loc><lastmod>2014-06-30T12:29:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/05/23/engineering-behind-explain-formatjson-or-lack-thereof/</loc><lastmod>2014-05-22T22:11:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/05/14/interesting-case-in-order-by-limit-optimization/</loc><lastmod>2014-05-14T14:21:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2014/05/13/comparing-query-optimizer-features-in-mariadb-100-and-mysql-56/</loc><lastmod>2014-05-13T07:37:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/11/23/pager-script-for-shrinking-explain-output/</loc><lastmod>2013-11-22T22:14:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/11/14/show-explain-in-mariadb-100-vs-explain-for-connection-in-mysql-57/</loc><lastmod>2013-11-13T21:31:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/11/07/a-chance-for-cassandra-storage-engine/</loc><lastmod>2013-11-07T08:17:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/10/24/mysql-56-no-testcases-for-non-crashing-bugs-either-and-an-incomplete-bugfix/</loc><lastmod>2013-10-24T13:22:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/10/18/mariadb-100-explain-in-the-slow-query-log/</loc><lastmod>2013-10-21T08:58:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/10/17/explain-updatedeleteinsert-in-mysql-and-mariadb/</loc><lastmod>2013-10-21T09:03:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/10/09/webinar-recording-mariadb-query-optimizer-improving-query-performance/</loc><lastmod>2013-10-09T12:33:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/07/23/explain-formatjson-vs-regular-explain/</loc><lastmod>2013-07-23T17:24:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/07/17/mysql-56-innodb-statistics-and-testcases-for-optimizer/</loc><lastmod>2013-07-17T17:57:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/05/01/slides-from-percona-live-talks-optimizer-tutorial-and-cassandra-storage-engine/</loc><lastmod>2013-05-01T16:44:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/02/18/mariadb-100-named-dynamic-columns-now-with-documentation/</loc><lastmod>2013-05-01T05:28:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2013/01/30/no-sheeri-mysql-56-does-not-optimize-subqueries-away/</loc><lastmod>2013-01-31T20:29:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/12/18/mysqlfosdem-2013-call-for-papers-closes-in-a-few-days/</loc><lastmod>2012-12-18T11:13:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/12/18/new-optimization-in-mariadb-100-exists-to-in-subquery-rewrite/</loc><lastmod>2012-12-18T10:57:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/11/20/looking-at-mysql-56s-optimizer-explain-update/</loc><lastmod>2012-11-19T21:05:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/11/10/extended-keys-first-in-mariadb-55-now-in-mysql-trunk-too/</loc><lastmod>2012-11-10T13:40:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/11/08/more-on-cost-based-choice-between-materialization-and-exists-to-in-for-subqueries/</loc><lastmod>2012-11-07T22:16:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/10/09/comparison-of-subquery-optimizations-in-mysql-56-and-mariadb-55/</loc><lastmod>2012-10-08T21:21:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/07/27/show-explain-and-skeletons-in-explains-closet/</loc><lastmod>2012-07-27T16:32:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/04/04/please-try-your-subqueries-on-mariadb/</loc><lastmod>2012-05-11T11:22:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/01/27/statistics-counters-for-multi-range-read/</loc><lastmod>2012-01-27T19:06:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/01/18/mysql-and-friends-devroom-at-fosdem-2012/</loc><lastmod>2012-01-17T22:50:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/01/15/on-complex-optimizations-and-optimizer-hints/</loc><lastmod>2012-01-16T09:17:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2012/01/14/mariadb-53-documentation-updated/</loc><lastmod>2012-01-14T20:38:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2011/12/30/mysql-at-fosdem-2012-time-to-vote-for-program/</loc><lastmod>2011-12-29T23:17:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2011/12/02/call-for-papers-mysql-and-friends-devroom-at-fosdem-2012/</loc><lastmod>2011-12-01T21:59:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2011/06/27/attempt-to-split-optimizer_switch/</loc><lastmod>2011-06-27T13:44:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2010/02/15/mariadb-at-fosdem-slides-booth-questions-etc/</loc><lastmod>2010-02-16T20:04:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/11/08/ongoing-mariadb-development-filtering-and-rewrites-in-mysqlbinlog/</loc><lastmod>2009-11-07T22:01:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/11/01/mariadb-51-feature-table-elimination/</loc><lastmod>2010-10-07T20:16:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/06/23/added-a-copy-of-mainline-mysql-51-into-our-buildbot/</loc><lastmod>2009-06-22T23:19:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/06/18/test-failures-in-51-different-people-making-different-fixes-for-the-same-problem/</loc><lastmod>2009-06-18T20:07:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/06/18/changed-jobs-now-at-monty-program-ab/</loc><lastmod>2009-06-18T19:34:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/05/06/notes-from-feature-request-bonanza-session-at-percona-performance-conference/</loc><lastmod>2009-05-05T20:26:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/04/14/optimizer-news-optimizer_switch-syntax-changes-and-backport/</loc><lastmod>2009-04-14T12:32:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/04/12/sun-tech-days-st-petersburg-2009/</loc><lastmod>2009-04-13T17:45:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2009/01/01/more-mysql-60-news-next-subquery-optimizations-wl-pushed/</loc><lastmod>2009-01-03T09:06:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/12/30/mysql-60-news-batched-key-access-is-in/</loc><lastmod>2009-07-17T13:44:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/09/09/a-proposal-for-method-of-delivering-optimizer-bug-fixes/</loc><lastmod>2008-09-11T09:39:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/09/02/explain-conditions-patch-available/</loc><lastmod>2008-09-03T14:35:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/04/20/code-and-slides-batched-key-access-feature-preview/</loc><lastmod>2008-04-20T19:42:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/04/16/slides-new-subquery-optimizations-in-mysql-60-new-revision/</loc><lastmod>2008-04-15T23:23:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/04/05/on-possibility-to-have-more-than-64-indexes/</loc><lastmod>2008-04-09T15:43:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/04/03/sun-tech-days-st-petersburg/</loc><lastmod>2008-05-20T18:12:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/03/24/ccorrelated-semi-join-subqueries-and-postgresql/</loc><lastmod>2008-03-26T11:49:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/03/23/slides-new-subquery-optimizations-in-mysql-60/</loc><lastmod>2008-03-23T09:11:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/02/23/observations-about-subquery-use-cases/</loc><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/6536b-dbtx-subquery-cases.png</image:loc><image:title>dbtx-subquery-cases.png</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/35c50-support-subquery-cases.png</image:loc><image:title>support-subquery-cases.png</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/e0496-bugsdb-subquery-cases.png</image:loc><image:title>bugsdb-subquery-cases.png</image:title></image:image><lastmod>2009-01-07T23:43:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/02/05/evgens-connect-by-patch-is-in-postgresql/</loc><lastmod>2008-02-05T08:52:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2008/02/05/subquery-optimizations-in-mysql-60/</loc><lastmod>2008-03-03T13:21:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/12/19/pluggable-storage-engine-interface-needs-to-support-name-resolution-hooks/</loc><lastmod>2007-12-19T07:31:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/12/16/bugfix-date-vs-datetime-comparisons-are-now-sargable-again/</loc><lastmod>2007-12-16T18:10:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/12/08/slides-and-audio-how-mysql-handles-order-by-group-by-and-distinct/</loc><lastmod>2008-09-27T06:06:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/08/29/how-mysql-executes-order-by/</loc><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/0bdb4-nl-join-order-last-tbl.png</image:loc><image:title>nl-join-order-last-tbl.png</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/a676a-nl-join-order-index.png</image:loc><image:title>nl-join-order-index.png</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/d1308-nl-join-order-first-tbl.png</image:loc><image:title>nl-join-order-first-tbl.png</image:title></image:image><lastmod>2009-07-09T14:01:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/07/07/an-idea-create-ha_trace-tracing-storage-engine/</loc><lastmod>2007-07-08T17:33:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/06/10/explain-using-join-cache-renamed-to-using-join-buffer/</loc><lastmod>2007-07-27T11:15:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/05/27/partition-pruning-tip-use-comparisons-of-column-not-of-partitioning-function-value/</loc><lastmod>2007-05-27T22:46:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/05/16/use-of-join-buffer-is-now-visible-in-explain/</loc><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/8be76-nl-join-buffering.png</image:loc><image:title>nl-join-buffering.png</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/5cf06-nl-join-no-buffering.png</image:loc><image:title>nl-join-no-buffering.png</image:title></image:image><lastmod>2010-06-18T01:07:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/05/03/thoughts-on-partitioning-optimizations/</loc><lastmod>2008-04-24T12:16:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/04/28/mysql-optimizer-and-prepared-statements/</loc><lastmod>2008-12-19T09:20:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/04/18/nested-loops-join-speedup-idea-promoted-to-wl-task/</loc><lastmod>2007-04-18T01:22:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/02/24/how-to-find-out-if-an-outer-join-was-converted-to-inner/</loc><lastmod>2007-02-23T22:32:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/02/22/nested-outer-joins/</loc><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/7b16a-outer-join-conds.png</image:loc><image:title>outer join swimlanes</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/13ec6-inner-join-conds.png</image:loc><image:title>Inner join swimlanes</image:title></image:image><lastmod>2008-10-08T00:25:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/02/14/subqueries-the-new-strategy-for-null-in-select/</loc><lastmod>2012-01-23T08:37:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/02/01/subqueries-nulls-and-inany-problem-fixed/</loc><lastmod>2007-01-31T23:43:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2007/01/29/an-idea-how-to-speed-up-nested-loops-join-a-little/</loc><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/c2f2e-nl-joins-speedup-swimlanes2.png</image:loc><image:title>Nested loop exec diagram</image:title></image:image><image:image><image:loc>https://petrunia.net/wp-content/uploads/2020/11/7bbd3-nl-joins-speedup-swimlanes.png</image:loc><image:title>Nested loops execution swimlane diagram</image:title></image:image><lastmod>2007-04-21T12:48:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2006/11/16/inany-subqueries-null-woes/</loc><lastmod>2007-08-26T20:29:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2006/10/01/partitioning-optimizations-documentation-is-available/</loc><lastmod>2006-09-30T20:40:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net/2006/10/01/hello-world/</loc><lastmod>2006-09-30T20:29:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://petrunia.net</loc><changefreq>daily</changefreq><priority>1.0</priority><lastmod>2024-03-17T12:43:17+00:00</lastmod></url></urlset>
