DBMS Cleaner is a lightweight, efficient tool designed to optimize and clean your database. Built with Rust, it ensures optimal performance by reducing storage usage and optimizing all tables (except system tables) without altering configurations or requiring manual intervention.
Whether you're running a server or an application, DBMS Cleaner keeps your database in peak condition, compatible across all major platforms.
- 🚀 Efficient Storage Optimization: Reduce database size by rebuilding indexes.
- ⚙️ Table Optimization: Ensures all tables (excluding system tables) are optimized.
- 🖥️ Cross-Platform Support: Seamlessly run on Windows, MacOS, and Linux.
- 🛠️ Simple Integration: No changes to FILE configurations required.
- 🛡️ Safe and Reliable: Maintains database integrity without the need for backups.
- 🔧 Customizable: Easily configure settings via
config.json
. - ⏱️ Fast Execution: Run it as a cron job or scheduled task for continuous optimization.
- Rust Compiler (Install via Rustup)
- Cargo Package Manager (Installed with Rust)
- Supported database drivers:
mysql
,mariadb
, orpostgres
Follow these steps to get started:
git clone https://github.com/Maxime-Cllt/DBMSCleaner.git
cd DBMSCleaner
cargo build --release
Create a file named cleaner.json
in the same directory as the compiled program with the following content:
{
"driver": "mysql|mariadb|postgres",
"host": "localhost",
"port": "3306",
"username": "root",
"password": "",
"schema": "test"
}
You can also include mutliple schemas in the schema
field, separated by a comma or use the *
keyword to clean all
schemas (except system schemas).
"schema": "test1,test2,test3"
./target/release/DBMSCleaner
.\target\release\DBMSCleaner.exe
- Exclusions: Does not clean triggers, stored procedures, functions, or views.
- Privileges Required: Ensure the program has sufficient privileges to connect and clean the database.
- Frequency: Safe to run frequently for continuous optimization.
This project is licensed under the MIT License.
Contributions are welcome! To contribute:
- Fork the Repository
- Create a Feature Branch:
git checkout -b feature/your-feature-name