# MariaDB Internals

- [Writing Plugins for MariaDB](/docs/general-resources/development-articles/mariadb-internals/development-writing-plugins-for-mariadb.md)
- [Encryption Plugin API](/docs/general-resources/development-articles/mariadb-internals/encryption-plugin-api.md)
- [Information Schema plugins: SHOW and FLUSH statements](/docs/general-resources/development-articles/mariadb-internals/information-schema-plugins-show-and-flush-statements.md)
- [Password Validation Plugin API](/docs/general-resources/development-articles/mariadb-internals/password-validation.md)
- [Merging into MariaDB](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb.md): This category explains how we merge various source trees into MariaDB
- [Creating a New Merge Tree](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb/creating-a-new-merge-tree.md)
- [Merging from MySQL (obsolete)](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb/merging-from-mysql-obsolete.md)
- [Merging New XtraDB Releases (obsolete)](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb/merging-new-xtradb-releases-obsolete.md)
- [Merging TokuDB (obsolete)](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb/merging-tokudb-obsolete.md)
- [Merging with a Merge Tree](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-merging-into-mariadb/merging-with-a-merge-tree.md)
- [Query Optimizer](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer.md): Delve into the MariaDB Server query optimizer. This section provides internal documentation on how queries are parsed, optimized, and executed for maximum efficiency and performance.
- [Block-Based Join Algorithms](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/block-based-join-algorithms.md)
- [Condition Selectivity Computation Internals](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/condition-selectivity-computation-internals.md)
- [Extended Keys](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/extended-keys.md)
- [MIN/MAX optimization](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/minmax-optimization.md)
- [Notes When an Index Cannot Be Used](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/notes-when-an-index-cannot-be-used.md)
- [Optimizer Debugging With GDB](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/optimizer-debugging-with-gdb.md)
- [Optimizer Development](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/optimizer-development.md)
- [optimizer\_max\_sel\_arg\_weight](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/optimizer_max_sel_arg_weight.md)
- [Range Optimizer](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/range-optimizer.md)
- [The Optimizer Cost Model from MariaDB 11.0](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/the-optimizer-cost-model-from-mariadb-11-0.md)
- [Optimizer Trace](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace.md)
- [Basic Optimizer Trace Example](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/basic-optimizer-trace-example.md)
- [How to Collect Large Optimizer Traces](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/how-to-collect-large-optimizer-traces.md)
- [Optimizer Trace for Developers](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/optimizer-trace-for-developers.md)
- [Optimizer Trace Guide](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/optimizer-trace-guide.md)
- [Optimizer Trace Overview](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/optimizer-trace-overview.md)
- [Optimizer Trace Resources](/docs/general-resources/development-articles/mariadb-internals/mariadb-internals-documentation-query-optimizer/mariadb-internals-documentation-optimizer-trace/optimizer-trace-resources.md)
- [MariaDB Source Code Internals](/docs/general-resources/development-articles/mariadb-internals/mariadb-source-code-internals.md): Articles about MariaDB source code and related internals
- [Stored Procedure Internals](/docs/general-resources/development-articles/mariadb-internals/mariadb-source-code-internals/stored-procedure-internals.md)
- [MariaDB Memory Usage](/docs/general-resources/development-articles/mariadb-internals/mariadb-source-code-internals/mariadb-memory-usage.md): How MariaDB uses memory
- [Connect Memory Usage](/docs/general-resources/development-articles/mariadb-internals/mariadb-source-code-internals/mariadb-memory-usage/connect-memory-usage.md)
- [Using MariaDB with Your Programs (API)](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api.md)
- [Progress Reporting](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/progress-reporting.md)
- [libMariaDB](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/libmariadb.md)
- [libmysqld](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/libmysqld.md): Articles about libmysqld.so, the embedded MariaDB server
- [Embedded MariaDB Interface](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/libmysqld/embedded-mariadb-interface.md)
- [The mariadb-test and mariadb-test-embedded Programs](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/libmysqld/mariadb-test-and-mariadb-test-embedded.md)
- [Non-Blocking Client Library](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/non-blocking-client-library.md): MariaDB client library (starting with version 5.5.21) and MySQL Connector/C (starting with version 2.1.0) supports \_non-blocking\_ operations
- [About Non-blocking Operation in the Client Library](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/non-blocking-client-library/about-non-blocking-operation-in-the-client-library.md)
- [Non-blocking API Reference](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/non-blocking-client-library/non-blocking-api-reference.md)
- [Using the Non-blocking Library](/docs/general-resources/development-articles/mariadb-internals/using-mariadb-with-your-programs-api/non-blocking-client-library/using-the-non-blocking-library.md)
