Mafiree logo
  • About
  • Services
  • Blogs
  • Careers
  • Products
    • orbit logo Orbit
    • streamer logo Xstreami
  • Contact
Schedule a Call
Menu
  • About
  • Services
  • Blogs
  • Careers
  • Products
    • orbit logo Orbit
    • streamer logo Xstreami
  • Contact
  • Schedule a Call
Database
Database Database Managed Services
MySQL MySQL
MySQL Consulting Services
MySQL Migration Services
MySQL Optimization & Query Tuning
MySQL Database Administration
MySQL Backup & Recovery
MySQL Security & Maintenance
MySQL Cloud Services (AWS RDS, Aurora, Google Cloud SQL, Azure)
MySQL for Ecommerce
MySQL High Availability & Replication
MongoDB MongoDB
MongoDB Consulting Services
MongoDB Migration Services
MongoDB Optimization & Query Tuning
MongoDB Database Administration
MongoDB Backup & Recovery
MongoDB Security & Maintenance
MongoDB Cloud (Atlas)
MongoDB Solutions by Industry
MongoDB High Availability & Replication
PostgreSQL PostgreSQL
PostgreSQL Consulting
PostgreSQL Migration & Upgrades
Performance Tuning & Query Optimization
PostgreSQL Administration & Managed Services
High Availability, Clustering & Replication
PostgreSQL Backup, Recovery & Disaster Planning
PostgreSQL Security, Compliance & Auditing
PostgreSQL for Analytics & Data Warehousing
PostgreSQL on Cloud & Containers
PostgreSQL Extensions & Open-Source Integrations
PostgreSQL for Every Industry
SQL Server MSSQL
MSSQL Consulting Services
MSSQL Migration Services
MSSQL Optimization & Query Tuning Services
MSSQL Database Administration Services
MSSQL Backup & Recovery Services
MSSQL High Availability & Replication Services
MSSQL Security & Compliance Services
MSSQL Performance Monitoring & Health Checks
MSSQL Solutions by Industry
Aerospike Aerospike
Aerospike Consulting Services
Aerospike Migration Services
Aerospike Performance Optimization & Tuning
Aerospike Database Administration
Aerospike Backup & Recovery
Aerospike High Availability
Aerospike Cloud & Hybrid Deployments
Aerospike for Real-Time Applications (AdTech, FinTech, Retail, IoT)
Analytics DB
Analytics DB Analytics DB Services
Clickhouse Clickhouse
ClickHouse Consulting Services
ClickHouse Migration Services
ClickHouse Optimization & Query Tuning
ClickHouse Database Administration
ClickHouse Backup & Recovery
ClickHouse Security & Maintenance
ClickHouse Cloud Services (ClickHouse Cloud, AWS, GCP, Azure)
ClickHouse Solutions by Industry
ClickHouse High Availability & Replication
TiDB TiDB
TiDB Consulting & Architecture Planning
TiDB Administration & Maintenance
TiDB Security and Privacy Maintenance
TiDB Performance & Query Optimization
TiDB Migration Services
TiDB Backup & Disaster Recovery
TiDB High Availability Solutions
TiDB Solutions by Industry
TiDB Cloud Services
ScyllaDB ScyllaDB
ScyllaDB Consulting & Architecture Planning
ScyllaDB Administration & Maintenance
ScyllaDB Security and Privacy Maintenance
ScyllaDB Performance & Query Optimization
ScyllaDB Migration Services
ScyllaDB Backup & Disaster Recovery
ScyllaDB High Availability Solutions
ScyllaDB Solutions by Industry
ScyllaDB Cloud Services
DevOps
DevOps DevOps Services
Version Control Version Control
Kubernetes Kubernetes
Infrastructure Infrastructure Management
Web Servers Web Servers
Networking
Networking Networking Services
Basic Basic
Advanced Advanced
MySQL MySQL
MongoDB MongoDB
PostgreSQL PostgreSQL
MSSQL MSSQL
Aerospike Aerospike
Clickhouse Clickhouse
TiDB TiDB
ScyllaDB ScyllaDB
Version Control Version Control
Kubernetes Kubernetes
Infrastructure Infrastructure Management
Web Servers Web Servers
Basic Basic
Advanced Advanced
MySQL Consulting Services
MySQL Migration Services
MySQL Optimization & Query Tuning
MySQL Database Administration
MySQL Backup & Recovery
MySQL Security & Maintenance
MySQL Cloud Services (AWS RDS, Aurora, Google Cloud SQL, Azure)
MySQL for Ecommerce
MySQL High Availability & Replication
MongoDB Consulting Services
MongoDB Migration Services
MongoDB Optimization & Query Tuning
MongoDB Database Administration
MongoDB Backup & Recovery
MongoDB Security & Maintenance
MongoDB Cloud (Atlas)
MongoDB Solutions by Industry
MongoDB High Availability & Replication
PostgreSQL Consulting
PostgreSQL Migration & Upgrades
Performance Tuning & Query Optimization
PostgreSQL Administration & Managed Services
High Availability, Clustering & Replication
PostgreSQL Backup, Recovery & Disaster Planning
PostgreSQL Security, Compliance & Auditing
PostgreSQL for Analytics & Data Warehousing
PostgreSQL on Cloud & Containers
PostgreSQL Extensions & Open-Source Integrations
PostgreSQL for Every Industry
MSSQL Consulting Services
MSSQL Migration Services
MSSQL Optimization & Query Tuning Services
MSSQL Database Administration Services
MSSQL Backup & Recovery Services
MSSQL High Availability & Replication Services
MSSQL Security & Compliance Services
MSSQL Performance Monitoring & Health Checks
MSSQL Solutions by Industry
Aerospike Consulting Services
Aerospike Migration Services
Aerospike Performance Optimization & Tuning
Aerospike Database Administration
Aerospike Backup & Recovery
Aerospike High Availability
Aerospike Cloud & Hybrid Deployments
Aerospike for Real-Time Applications (AdTech, FinTech, Retail, IoT)
ClickHouse Consulting Services
ClickHouse Migration Services
ClickHouse Optimization & Query Tuning
ClickHouse Database Administration
ClickHouse Backup & Recovery
ClickHouse Security & Maintenance
ClickHouse Cloud Services (ClickHouse Cloud, AWS, GCP, Azure)
ClickHouse Solutions by Industry
ClickHouse High Availability & Replication
TiDB Consulting & Architecture Planning
TiDB Administration & Maintenance
TiDB Security and Privacy Maintenance
TiDB Performance & Query Optimization
TiDB Migration Services
TiDB Backup & Disaster Recovery
TiDB High Availability Solutions
TiDB Solutions by Industry
TiDB Cloud Services
ScyllaDB Consulting & Architecture Planning
ScyllaDB Administration & Maintenance
ScyllaDB Security and Privacy Maintenance
ScyllaDB Performance & Query Optimization
ScyllaDB Migration Services
ScyllaDB Backup & Disaster Recovery
ScyllaDB High Availability Solutions
ScyllaDB Solutions by Industry
ScyllaDB Cloud Services
  1. Home
  2. > Blogs
  3. > MySQL
  4. > MySQL Performance Issues: 7 Signs You Need Professional Tuning

MySQL Performance Issues: 7 Signs You Need Professional Tuning

MySQL performance issues are rarely sudden — they build over time through slow queries, InnoDB buffer pool misses, replication lag, lock contention, thread pile-ups, tablespace bloat, and unstable query plans. This post identifies the seven most reliable signs that your MySQL environment needs professional DBA attention, with diagnostic queries and remediation guidance for each.

sukan May 22, 2026

Subscribe for email updates

7 Critical MySQL Performance Issues You Can't Ignore

MySQL performance issues rarely announce themselves loudly. They creep in — a query that used to return in 40 ms now takes 4 seconds, CPU climbs silently through the night, replica lag grows from negligible to alarming. By the time users complain or on-call alarms fire, the root cause has often been building for weeks. Mafiree's managed database services team has diagnosed hundreds of these situations, and the pattern is consistent: the warning signs were there long before the crisis.

This guide walks through the seven most reliable indicators that your MySQL environment has moved beyond what routine maintenance and generic configuration advice can fix — and that it's time to bring in a professional DBA.

Quick Takeaways
  • Slow query logs are a treasure map — most teams never read them systematically
  • InnoDB buffer pool hit rates below 99% are a measurable, fixable problem
  • Replication lag is a symptom, not a root cause — diagnosing it requires reading binary logs
  • Table-level locks in a high-concurrency workload are almost always an architectural signal
  • Rising thread counts and mutex waits indicate contention, not just load
  • Growing ibdata1 or undo tablespace is a silent performance and storage drain
  • Execution plans that flip between indexes on the same query signal the optimizer needs help

Sign 1: Your MySQL Slow Query Log Is Full — and Nobody's Reading It

Sign #1
Persistent slow queries that keep reappearing

If your slow_query_log is enabled and the same query fingerprints appear week after week, you don't have a query problem — you have a process problem. The slow query log is only useful when someone is systematically reading, triaging, and fixing what's in it.

A professional DBA uses tools like pt-query-digest (from Percona Toolkit) to aggregate thousands of slow query entries into ranked, actionable reports. The output reveals which query fingerprint accounts for the most total execution time across your entire workload — not just which single execution was slowest.

-- Enable slow query logging SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; -- seconds; start at 1, lower later SET GLOBAL log_queries_not_using_indexes = 'ON'; -- Analyse with pt-query-digest: -- pt-query-digest /var/lib/mysql/slow.log --limit 10

The fix is rarely "add an index and move on." Repeated slow queries often reveal missing composite indexes, implicit type conversions in WHERE clauses, or functions applied to indexed columns that defeat the optimizer. Each of these requires a different solution.

Sign 2: InnoDB Buffer Pool Hit Rate Is Below 99%

Sign #2
Excessive disk I/O due to an undersized or misconfigured buffer pool

InnoDB's buffer pool is the single most impactful memory structure in MySQL. When it's large enough, your hot working set lives in RAM. When it's not, every cache miss becomes a disk read — and that's the fastest path to throughput collapse.

You can measure your current hit rate with a single query:

SELECT FORMAT((1 - (r.bp_reads / rr.bp_read_requests)) * 100, 4) AS buffer_pool_hit_rate_pct FROM (SELECT VARIABLE_VALUE AS bp_reads FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_reads') r, (SELECT VARIABLE_VALUE AS bp_read_requests FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_read_requests') rr;

A result below 99% means your server is hitting disk for data that should be in memory. The fix isn't always "buy more RAM" — it often involves identifying which tables or indexes are evicting hot pages, tuning innodb_buffer_pool_size, enabling multiple buffer pool instances (innodb_buffer_pool_instances), or reviewing workload patterns that cause unnecessary full-table scans.

Sign 3: MySQL Replication Lag Keeps Growing and You Don't Know Why

Sign #3
Seconds_Behind_Source climbing without a clear cause

Replication lag has multiple root causes and each requires a different fix. Treating all lag as "the replica is slow" leads to wasted effort. Most teams add resources before diagnosing the real bottleneck.

Common causes of replication lag, in order of frequency Mafiree encounters them:

  1. Single-threaded replica applier — your source uses parallel writes, your replica serialises them. Fix: enable parallel replication via replica_parallel_workers.
  2. Long-running transactions on source — a batch job holds a lock for 30 seconds; the replica must replay it serially. Fix: break large transactions into smaller batches.
  3. Missing indexes on the replica — row-based replication must locate each row to update; without the right index it does a full table scan per event. Fix: add the missing index on the replica.
  4. Network saturation between source and replica — binary log volume exceeds available bandwidth. Fix: enable binlog_transaction_compression (MySQL 8.0.20+).
  5. Replica I/O bound — replica storage can't keep pace with the apply rate. Fix: move relay logs to a faster volume or SSD-backed storage.
⚙️
Mafiree MySQL DBA Services

Replication lag diagnosis, GTID migration, and parallel replication setup are standard engagements for Mafiree's DBA team. We identify the actual bottleneck before recommending any hardware changes.

Explore MySQL DBA Services

Sign 4: Table‑Level Locks in a High‑Concurrency MySQL Workload

Sign #4
Table locks causing thread pile-ups and request queuing

InnoDB uses row-level locking. If you're seeing table-level locks in an InnoDB workload, something upstream has forced a full-table lock — a DDL statement run without ALGORITHM=INPLACE, an unclosed LOCK TABLES call in application code, or a query running without an index that escalates to an implicit table lock.

Spot active table lock contention with:

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

Persistent lock waits in production are architectural signals. The fix might be index additions, transaction reordering, migrating DDL operations to pt-online-schema-change or gh-ost, or reviewing application connection pooling to eliminate long-lived idle transactions.

83% of lock-wait incidents Mafiree resolved were caused by missing indexes, not hardware limits
6.1 TB storage reclaimed on one engagement after resolving undo tablespace bloat from long-running transactions
< 2 hrs typical time-to-resolution for replication lag once the actual bottleneck is correctly identified

Metrics are from real-world engagements; client identities withheld under NDA.

Sign 5: Thread Count and Mutex Waits Climb Under Normal Load

Sign #5
Connection threads and internal mutex contention growing disproportionately

A rising thread count that isn't proportional to actual query load is a sign of contention, not capacity. Threads pile up waiting for resources — locks, buffer pool latches, or I/O — rather than actively processing work.

The Performance Schema exposes mutex and lock waits in detail:

-- Top wait events by total latency SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT / 1e12 AS total_wait_sec FROM performance_schema.events_waits_summary_global_by_event_name WHERE COUNT_STAR > 0 ORDER BY SUM_TIMER_WAIT DESC LIMIT 20;

Common culprits include wait/synch/mutex/innodb/buf_pool_mutex (buffer pool contention — often fixed by increasing innodb_buffer_pool_instances) and wait/io/file/innodb/innodb_data_file (storage I/O latency). Each requires a different tuning response.

Connection thread management is also worth reviewing. If your application isn't using a connection pool, each request opens a new thread. At scale, the overhead of thread creation and teardown becomes material. Enabling thread_cache_size and deploying ProxySQL or MySQL Router load balancing in front of your database resolves this class of problem cleanly. For teams also managing failover, see our guide on MySQL high availability with orchestrator.

Sign 6: ibdata1 or Undo Tablespace Is Growing Without Bound

Sign #6
System tablespace growth causing storage pressure and degraded write performance

In configurations still using a shared system tablespace (ibdata1), or environments with large undo tablespace growth, storage consumption climbs even when actual data volume is stable. This directly impacts performance: InnoDB's write path has to manage a bloated, fragmented tablespace.

The most common root cause is long-running transactions that hold open a read view, preventing InnoDB's purge thread from cleaning up undo records. A transaction open for hours while a batch job runs means millions of undo records accumulating silently.

Diagnosing Undo Bloat

-- Check history list length — should stay below ~1000 in a healthy system SHOW ENGINE INNODB STATUS\G -- Look for: History list length -- Via performance_schema (MySQL 8.0+) SELECT NAME, SUBSYSTEM, COMMENT FROM information_schema.INNODB_METRICS WHERE NAME LIKE 'trx_rseg_history%';

A history list length persistently above 10,000 means the purge thread is falling behind. The long-term fix involves migrating to innodb_undo_tablespaces (separate, truncatable undo files), identifying and rewriting the long-running transactions, and reviewing innodb_purge_threads configuration.

Sign 7: MySQL Query Optimizer Keeps Changing Execution Plans

Sign #7
Unstable execution plans causing unpredictable latency spikes

If EXPLAIN output for the same logical query varies between executions — sometimes picking index A, sometimes index B, sometimes doing a full scan — your optimizer statistics are stale, skewed, or sampling isn't representative of the actual data range being queried.

This is one of the more subtle MySQL performance issues because the query appears "fast most of the time" — until the optimizer makes a bad choice and latency spikes 50–100×. Users experience it as intermittent slowness that's impossible to reproduce on demand.

Diagnosing Plan Instability

-- Check when statistics were last updated SELECT TABLE_NAME, UPDATE_TIME, TABLE_ROWS, AVG_ROW_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database' ORDER BY UPDATE_TIME DESC; -- Refresh statistics ANALYZE TABLE your_table; -- Review histograms (MySQL 8.0+) SELECT * FROM information_schema.COLUMN_STATISTICS WHERE TABLE_NAME = 'your_table';

The solution is layered: first, refresh statistics with ANALYZE TABLE and review innodb_stats_persistent_sample_pages (default 20 — for large tables, 200+ gives more stable estimates). Second, add column histograms for non-indexed columns that appear in WHERE clauses. Third, for critical queries with genuinely unstable plans, use optimizer hints to lock in the correct index as a short-term fix while the data distribution is investigated more deeply.

For tables in the tens of millions of rows, a histogram-guided optimizer combined with correctly sampled persistent statistics can eliminate plan instability entirely. This is the kind of surgical tuning that requires time in the query execution internals — not something that falls out of generic database advice.

Related Mafiree Resources
  • MySQL Router Load Balancing — Setup, Configuration and Best Practices
  • MariaDB vs MySQL: Latest Features and What the Differences Mean for Your Infrastructure
  • Mafiree MySQL DBA Services — Ongoing tuning, incident response, and performance audits
  • Xstreami Data Pipeline — Real-time MySQL change data capture and downstream delivery

External reference: MySQL 8.0 InnoDB Configuration — Official Documentation

How Professional MySQL Performance Tuning from Mafiree Helps

Each of the seven MySQL performance issues above — persistent slow queries, low buffer pool hit rates, unexplained replication lag, lock contention, thread pile-ups, tablespace bloat, and unstable execution plans — is individually diagnosable and fixable. But in most production systems they appear in combination, and fixing one without understanding the others leads to whack-a-mole troubleshooting that burns engineering time without delivering stability.

Professional MySQL performance tuning means reading the system as a whole: workload patterns, index design, memory configuration, storage I/O characteristics, replication topology, and application connection behaviour together. Mafiree's professional database consultants have done this across dozens of production MySQL environments, from single-instance transactional databases to multi-replica topologies handling hundreds of millions of rows.

If you recognise more than two of these signs in your own infrastructure, don't wait for an incident. Talk to a Mafiree DBA today — we'll take an honest look at your MySQL environment and tell you exactly what needs fixing.

Talk to a Mafiree DBA Expert

Free 30-minute consultation. No commitment. Just an honest look at your MySQL environment.

Book a Free Consultation

FAQ

The most common MySQL performance issues include slow queries not using indexes, an undersized InnoDB buffer pool causing excessive disk reads, replication lag due to single-threaded appliers or missing replica indexes, table-level lock contention, thread pile-ups from connection pool misconfiguration, tablespace bloat from long-running transactions, and unstable query execution plans caused by stale optimizer statistics.
You likely need professional MySQL performance tuning if you observe two or more of these signs: your slow query log shows the same queries repeatedly; InnoDB buffer pool hit rate is below 99%; replication lag is growing without a clear cause; you're seeing lock wait timeouts under normal load; thread counts climb disproportionately to query volume; ibdata1 or undo tablespace is growing unexpectedly; or the same query produces different execution plans on different runs.
A healthy InnoDB buffer pool hit rate is 99% or above. Anything below 99% means your server is regularly reading data from disk rather than memory, which significantly increases query latency. The fix may involve increasing innodb_buffer_pool_size, increasing innodb_buffer_pool_instances to reduce latch contention, or identifying workloads that are evicting hot pages unnecessarily.
To diagnose MySQL replication lag, start by checking SHOW REPLICA STATUS for Seconds_Behind_Source and then investigate the replica's applier threads. Common causes include single-threaded relay log application, missing indexes on the replica causing row-based replication to perform full table scans, long-running transactions on the source, and network bandwidth saturation between source and replica. Each cause requires a different fix.
Unstable MySQL query execution plans are most commonly caused by stale or inaccurate optimizer statistics. When data distribution in a column changes but statistics aren't updated, the optimizer can make suboptimal index choices. The fix involves running ANALYZE TABLE to refresh statistics, increasing innodb_stats_persistent_sample_pages for large tables, and adding column histograms in MySQL 8.0.
ibdata1 grows due to undo log accumulation when long-running transactions prevent InnoDB's purge thread from cleaning up row versions. The fix involves identifying and closing long-running transactions, monitoring the History List Length via SHOW ENGINE INNODB STATUS, tuning innodb_purge_threads, and migrating to separate innodb_undo_tablespaces which can be truncated independently.
Most MySQL performance issues can be resolved with zero or minimal downtime. Configuration changes to innodb_buffer_pool_size, replica_parallel_workers, and thread_cache_size can be applied dynamically on MySQL 8.0. Index additions on large tables can be performed using pt-online-schema-change or gh-ost, which avoid table locks. ANALYZE TABLE operations are online. Schema changes that would normally require downtime can typically be performed through online DDL tools.

Author Bio

sukan

Sukan is Database Team Lead at Mafiree with over a decade of experience in database systems, architecture, and performance optimization. He specializes in MySQL, MongoDB, TiDB, and ClickHouse, developing architectural improvements that make data platforms faster, more efficient, and cost-effective. Sukan writes about practical database engineering topics, real-world performance tuning, data replication, and high-scale system design, drawing from extensive hands-on experience solving complex technical challenges.

Leave a Comment

Related Blogs

Column-Level Security: Enterprise Data Protection Without the Infrastructure Overhead

Column-level security is a native database feature that restricts access to specific table columns by user role. Mafiree implemented this for a client as a cost-effective replacement for a planned CDC replication architecture that existed solely to strip sensitive columns. The result: zero additional infrastructure, single source of truth, full GDPR/HIPAA compliance posture, and validated in production with no performance impact.

  124 views
MySQL Schema Migration Without Downtime: A Real Fintech Case Study

Schema changes on large MySQL tables can bring production systems to a halt if not handled correctly. This case study walks through how Mafiree helped a fintech client execute a zero-downtime MySQL schema migration on a 500M+ row production database — covering the real challenges faced, the three-phase tool strategy using gh-ost, pt-online-schema-change, and MySQL 8.0 INSTANT DDL, production configuration settings with performance benchmarks, and best practices for safely evolving your MySQL schema without impacting users

  2464 views
MySQL Architecture Explained: Performance Tuning & Troubleshooting Guide

MySQL features a unique tiered architecture that separates query processing from data storage through its pluggable storage engine model. This guide explores the core components—from connection handling and the SQL optimizer to the physical storage of data on disk. By understanding how engines like InnoDB provide ACID compliance and row-level locking, you can significantly improve your database's scalability. We also break down the query execution workflow and provide actionable tips for performance tuning, such as optimizing the buffer pool. Whether you're managing a replica set or a standalone instance, mastering MySQL’s internal structure is essential for building high-performance applications.

  1447 views
MariaDB vs MySQL: What's Different in 2026 and Which One Should You Use

Discover how MariaDB 11.x is redefining open-source databases with cutting-edge features like system-versioned tables, native AI-ready vector support, UUIDv7 for scalable inserts, and enterprise-grade security; all in the Community Edition, without the paywall.

  235 views
Stop Hackers at the Gate: Restricting Brute-Force Attacks with MySQL’s Connection Control Plugin

“Fortify Your MySQL Security: Slow Down Attackers with Connection Control Plugin” Learn how the MySQL Connection Control Plugin helps defend against brute-force login attempts by introducing intelligent, progressive delays—without locking out legitimate users.

  1784 views

Subscribe for email updates

Get in touch with us

Highlights

More than 6000 Servers Monitored

Happy Clients

Certified DBAs

24 x 7 x 365 Support

PCI

Database Services

MySQL MongoDB PostgreSQL SQL Server Aerospike Clickhouse TiDB MariaDB Columnstore

Quick Links

Careers Blog Contact Privacy Policy Disclaimer Policy

Contacts

Linkedin Mafiree Facebook Mafiree Twitter Mafiree

Nagercoil Office

Miru IT Park, Vallankumaranvillai,

Nagercoil, Tamilnadu - 629 002.

Bangalore Office

Unit 303, Vanguard Rise,

5th Main, Konena Agrahara,

Old Airport Road, Bangalore - 560 017.

Call: +91 6383016411

Email: sales@mafiree.com


Copyright © - All Rights Reserved - Mafiree