# xiaomi/soar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/xiaomi-soar).**

8,770 stars · 1,320 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/XiaoMi/soar
- awesome-repositories: https://awesome-repositories.com/repository/xiaomi-soar.md

## Topics

`advisor` `auditor` `command-line` `database` `indexing` `mysql` `optimizer` `rewrite` `sql` `suggestion` `syntax`

## Description

Soar is a suite of specialized tools designed for analyzing MySQL performance, advising on indexing, and optimizing SQL syntax. It functions as a performance analyzer, index advisor, and query optimizer to identify bottlenecks and suggest structural improvements for faster execution.

The project distinguishes itself through a system for rewriting SQL statements into optimized equivalent versions using custom heuristic rules and patterns. It also features a dedicated index advisor that evaluates query patterns and database metadata to recommend the creation of new indexes.

Its broader capabilities include SQL syntax validation across multiple dialects, execution plan visualization and tracing, and the consolidation of multiple table alteration statements to reduce database overhead. The toolset also provides query fingerprinting for deduplication, implicit conversion detection, and the generation of optimization reports in Markdown, HTML, and JSON formats.

## Tags

### Data & Databases

- [Execution Plan Analysis](https://awesome-repositories.com/f/data-databases/database-query-execution/execution-plan-analysis.md) — Analyzes database execution plans and explain output to detect inefficient access types and key usage.
- [MySQL Administration Tools](https://awesome-repositories.com/f/data-databases/mysql-administration-tools.md) — Provides a specialized suite of tools for analyzing and optimizing MySQL database performance. ([source](http://github.com/XiaoMi/soar/blob/master/doc/roadmap.md))
- [SQL Query Optimizations](https://awesome-repositories.com/f/data-databases/sql-query-optimizations.md) — Provides comprehensive SQL query optimization by applying heuristic algorithms and index analysis to improve execution performance. ([source](https://github.com/xiaomi/soar#readme))
- [Database Indexing](https://awesome-repositories.com/f/data-databases/database-indexing.md) — Evaluates query patterns and execution plans to recommend the most efficient indexing strategies.
- [Database Indexing Optimizers](https://awesome-repositories.com/f/data-databases/database-indexing-optimizers.md) — Analyzes query patterns and environment data to recommend creating new indexes or removing redundant ones. ([source](http://github.com/XiaoMi/soar/blob/master/CHANGES.md))
- [SQL Optimization Rewriting](https://awesome-repositories.com/f/data-databases/database-sharding/shard-routing-logic/sql-optimization-rewriting.md) — Transforms SQL queries using custom rewrite rules to modify statement structures for better execution efficiency. ([source](http://github.com/XiaoMi/soar/blob/master/README_EN.md))
- [SQL Rewriting](https://awesome-repositories.com/f/data-databases/dynamic-sql-generators/sql-rewriting.md) — Transforms complex SQL queries into optimized equivalent versions using custom heuristic rules.
- [Execution Plan Analysis](https://awesome-repositories.com/f/data-databases/execution-plan-analysis.md) — The tool inspects explain output to detect performance warnings based on access types and key usage. ([source](http://github.com/XiaoMi/soar/blob/master/doc/config.md))
- [MySQL Performance Analyzers](https://awesome-repositories.com/f/data-databases/mysql-performance-analyzers.md) — Interprets MySQL execution plans and explain output to detect inefficient access types and key usage.
- [Query Analysis Tools](https://awesome-repositories.com/f/data-databases/query-analysis-tools.md) — Interprets detailed database execution plans to identify and explain performance bottlenecks. ([source](https://github.com/xiaomi/soar#readme))
- [Query Performance Analyzers](https://awesome-repositories.com/f/data-databases/query-performance-analyzers.md) — Analyzes database queries to identify performance bottlenecks and suggest structural improvements. ([source](http://github.com/XiaoMi/soar/blob/master/doc/FAQ.md))
- [Rule-Based Plan Optimizations](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/rule-based-plan-optimizations.md) — Applies a fixed set of rewrite rules to transform logical plans and improve execution speed. ([source](http://github.com/XiaoMi/soar/blob/master/doc/structure.md))
- [Schema-Aware Performance Optimization](https://awesome-repositories.com/f/data-databases/schema-aware-performance-optimization.md) — Integrates live database sampling and metadata analysis to recommend specific index additions or structural changes.
- [SQL Abstract Syntax Tree Parsing](https://awesome-repositories.com/f/data-databases/sql-abstract-syntax-tree-parsing.md) — Translates various database dialects into abstract syntax trees for structural analysis and rewriting.
- [SQL Heuristic Optimizations](https://awesome-repositories.com/f/data-databases/sql-heuristic-optimizations.md) — Analyzes database queries and recommends heuristic rules to improve overall execution efficiency. ([source](http://github.com/XiaoMi/soar/blob/master/README_EN.md))
- [SQL Heuristic Rule Evaluation](https://awesome-repositories.com/f/data-databases/sql-heuristic-rule-evaluation.md) — Evaluates queries against predefined thresholds for joins and row limits to identify inefficient patterns. ([source](http://github.com/XiaoMi/soar/blob/master/doc/config.md))
- [SQL Index Advisors](https://awesome-repositories.com/f/data-databases/sql-index-advisors.md) — Evaluates query patterns and database metadata to recommend the creation of new indexes.
- [SQL Performance Heuristics](https://awesome-repositories.com/f/data-databases/sql-performance-heuristics.md) — Evaluates queries against configurable heuristic patterns to identify performance bottlenecks and trigger warnings.
- [AST-Based Rewriting](https://awesome-repositories.com/f/data-databases/sql-query-interfaces/sql-converters/ast-based-rewriting.md) — Implements AST-based structural modification of SQL queries to improve execution speed.
- [SQL Rewrite Recommendations](https://awesome-repositories.com/f/data-databases/sql-rewrite-recommendations.md) — Offers recommendations to help users rewrite SQL queries for better execution efficiency. ([source](http://github.com/XiaoMi/soar/blob/master/doc/roadmap.md))
- [SQL Structural Improvement Suggestions](https://awesome-repositories.com/f/data-databases/sql-structural-improvement-suggestions.md) — Analyzes query patterns to recommend structural improvements and best practices for efficient SQL execution. ([source](http://github.com/XiaoMi/soar/blob/master/doc/comparison.md))
- [SQL Syntax Checking](https://awesome-repositories.com/f/data-databases/sql-syntax-checking.md) — Identifies syntax errors in SQL scripts and validates data definitions using a database-native parser. ([source](http://github.com/XiaoMi/soar/blob/master/CHANGES.md))
- [SQL Query Structure Validators](https://awesome-repositories.com/f/data-databases/structural-data-validators/sql-query-structure-validators.md) — Detects structural issues and syntax errors in SQL queries to ensure they are syntactically correct. ([source](http://github.com/XiaoMi/soar/blob/master/doc/cheatsheet.md))
- [Index Optimizations](https://awesome-repositories.com/f/data-databases/table-data-retrieval/index-optimizations.md) — Evaluates complex query patterns to suggest efficient indexing strategies for faster data retrieval. ([source](http://github.com/XiaoMi/soar/blob/master/README_EN.md))
- [Missing Index Identification](https://awesome-repositories.com/f/data-databases/table-indexing-systems/database-indexes/missing-index-identification.md) — Analyzes query execution patterns to suggest new indexes that reduce data scanning and improve speed. ([source](http://github.com/XiaoMi/soar/blob/master/doc/comparison.md))
- [Database Data Sampling](https://awesome-repositories.com/f/data-databases/database-data-sampling.md) — The tool imports live database records into a test environment to increase the accuracy of query analysis. ([source](http://github.com/XiaoMi/soar/blob/master/doc/FAQ.md))
- [Database Maintenance](https://awesome-repositories.com/f/data-databases/database-maintenance.md) — Consolidates multiple table alteration statements into single operations to maintain performance and reduce downtime.
- [Database Performance Sampling](https://awesome-repositories.com/f/data-databases/database-performance-sampling.md) — Retrieves a subset of actual data from the database to inform optimization decisions. ([source](http://github.com/XiaoMi/soar/blob/master/CHANGES.md))
- [Execution Plan Visualization](https://awesome-repositories.com/f/data-databases/database-query-execution/execution-plan-analysis/execution-plan-visualization.md) — Provides a visual display of the step-by-step process used by the database engine to execute queries. ([source](http://github.com/XiaoMi/soar/blob/master/doc/comparison.md))
- [DDL Statement Merging](https://awesome-repositories.com/f/data-databases/ddl-statement-merging.md) — Merges multiple table alteration commands into a single operation to minimize database locking.
- [HTML Analysis Reports](https://awesome-repositories.com/f/data-databases/html-analysis-reports.md) — Produces optimization analysis reports in Markdown or HTML formats with severity-based scoring. ([source](http://github.com/XiaoMi/soar/blob/master/doc/config.md))
- [Table Structure Alterations](https://awesome-repositories.com/f/data-databases/mysql-integrations/online-schema-migrations/online-schema-alterations-during-migration/table-structure-alterations.md) — Combines multiple alter requests for the same table into a single operation to reduce locking and overhead. ([source](https://github.com/xiaomi/soar#readme))
- [Query Performance Monitors](https://awesome-repositories.com/f/data-databases/query-performance-monitors.md) — Measures execution metrics and resource usage to identify slow-running queries. ([source](http://github.com/XiaoMi/soar/blob/master/doc/comparison.md))
- [SQL Optimization Rule Management](https://awesome-repositories.com/f/data-databases/sql-optimization-rule-management.md) — Manages the list of optimization rules to include or exclude specific analysis patterns during processing. ([source](http://github.com/XiaoMi/soar/blob/master/doc/cheatsheet.md))
- [SQL Schema Operation Consolidation](https://awesome-repositories.com/f/data-databases/sql-schema-operation-consolidation.md) — Merges multiple alter statements into a single operation to reduce database overhead and execution time. ([source](http://github.com/XiaoMi/soar/blob/master/README_EN.md))

### Development Tools & Productivity

- [SQL Optimization Rule Definitions](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/static-analysis-rules/framework-linting-rules/core-rule-extensions/custom-lint-rule-plugins/custom-lint-rule-definitions/sql-optimization-rule-definitions.md) — Allows the definition of custom logic and rule functions to trigger performance warnings based on query patterns. ([source](http://github.com/XiaoMi/soar/blob/master/doc/FAQ.md))

### Programming Languages & Runtimes

- [SQL Implicit Conversion Detection](https://awesome-repositories.com/f/programming-languages-runtimes/compile-time-type-constraints/component-type-mismatch-detection/implicit-type-mismatches/sql-implicit-conversion-detection.md) — Detects where data types change during comparisons to prevent slow query performance caused by implicit conversions. ([source](http://github.com/XiaoMi/soar/blob/master/CHANGES.md))

### Software Engineering & Architecture

- [Query Quality Scoring](https://awesome-repositories.com/f/software-engineering-architecture/violation-reporters/violation-severity-management/query-quality-scoring.md) — Quantifies query quality by mapping heuristic rule violations to a numerical score and categorized severity levels.

### System Administration & Monitoring

- [Database Query Tracing](https://awesome-repositories.com/f/system-administration-monitoring/trace-querying/database-query-tracing.md) — Tracks the lifecycle of queries through the database system to debug latency and errors. ([source](http://github.com/XiaoMi/soar/blob/master/doc/comparison.md))

### Web Development

- [SQL Query Fingerprinting](https://awesome-repositories.com/f/web-development/request-deduplication/query-deduplications/sql-query-fingerprinting.md) — Provides query fingerprinting by replacing literals with placeholders for deduplication and grouping.

### Part of an Awesome List

- [Database Tools](https://awesome-repositories.com/f/awesome-lists/data/database-tools.md) — SQL optimization and rewriting tool.
