Preface
Next week, Tuesday, 17th of September, I’m speaking at the MariaDB Server Fest. My speech involves and heavily focuses on indexes within MariaDB. One of my primary goals with this speech is for attendees to understand how to harness the power of indexing.
My speech has a rather catchy title – “MariaDB Indexes Revisited: Beyond the Documentation.” That’s because while the documentation of what indexes do in a variety of scenarios is helpful and lets users understand what indexes do and what makes them useful, sometimes it can also be rather confusing.
Addressing Pain Points
Have a glance through the page that lets you get started using indexes in MariaDB – it won’t be long until you notice that the page says the following:
- There are four main kinds of indexes in MariaDB. Primary keys, unique indexes, “vanilla” indexes, and full-text indexes that are suitable for conducting full-text search operations.
- MariaDB splits the essentials of indexing into a separate page. Doing so necessitates further searching and acquiring information on indexes as a whole.
- The section “when to remove an index” could be more informative: MariaDB essentially says that indexes should be removed if they’re rarely used or not used at all and doing so increases the performance of
INSERT
andUPDATE
queries which is true, but there’s just so much more that can be said about when to remove a specific kind of index and why that should be done, right? - The essentials of an index page doesn’t mention things that’d be important. The page doesn’t mention that an index is a data structure that allows MariaDB to find rows. That’s the concept of indexing to begin with! Strange, isn’t it?
I could go on, but I think you get the point. Documentation is important, but in this case, the MariaDB index documentation contains many things that are skipped, missed, or, frankly, things that could have been phrased better. Plain indexes are a good example of this: things can, and should, be phrased better for everyone’s sake.
Specific use cases require specific approaches to indexing as well – wildcard searches may necessitate a FULLTEXT
index (if they’re on top of “regular” search methods, a FULLTEXT
index may as well be an additional index on a vanilla B-tree index), and I’m not even talking about the fact that there are B-tree indexes with their subtypes and everything that they entail (i.e. covering, composite, clustered, descending, FULLTEXT
, UNIQUE
, HASH
, and PRIMARY KEY
indexes), and then there are R-tree, or spatial, indexes as well. Thus, saying that “there are four main kinds of indexes” may not necessarily be right and I’ll dig into this in my talk.
Other MariaDB Things Attendees will Learn
Aside from indexing, I want attendees to learn a little about the internal functionality of queries like EXPLAIN
and DESCRIBE
within MariaDB, too: for those reading this blog the functionality of these queries may be as clear as day, but that’s not the case for many developers. I’ll go through the possible outputs of EXPLAIN
queries when they relate to indexes, tell attendees what messages like Impossible where noticed after reading const tables
in MariaDB mean and how to overcome them, and also walk them through ways to come up with an action plan that helps their database and applications become and keep being performant.
There will be takeaways related to indexing too, so don’t miss out!
The best part? My MariaDB indexing talk is only 20 minutes long. It’s a perfect way to spend your lunch break when eating or drinking coffee or play it as a podcast! Tune into MariaDB indexes on Tuesday by watching the playlist provided by the MariaDB Foundation on YouTube. Also, follow my blog where I may publish more updates related to the conference later on. See you on Tuesday 13:55 CEST time!
The post Thoughts Before Covering MariaDB Indexes in the MariaDB Server Fest 2024 appeared first on Simple Talk.