Back
Database Management

Reliable database management for modern, high-performance systems.

Back
Data Modernisation

Reliable database management for modern, high-performance systems.

Back
Data Engineering

Reliable database management for modern, high-performance systems.

Back
Analytics & Intelligence

Reliable database management for modern, high-performance systems.

Back
Data Strategy Consulting

Reliable database management for modern, high-performance systems.

How Geopits audited Danamojo's production donation database and found a 216-million-row bottleneck

216M

Row Unindexed JOIN Identified

401,949

Full-Table Joins Server-Wide

211

Tables Across 4 Databases Audited

Audit Stage

Findings and Roadmap Delivered
Company Info
Company
Danamojo
About
India's first payment solutions platform built specifically for NGOs, enabling online donations and payment processing for nonprofits.
Industry
Nonprofit, donation and payment processing
Tech Used
MySQL 8.0.42 Community Edition, Ubuntu 20.04 LTS

About

Danamojo

Danamojo runs a donation and payment processing platform for NGOs on MySQL 8.0.42, Community Edition, on Ubuntu 20.04 LTS. Geopits was engaged to run a full database health audit across schema, performance, security, and configuration for this production nonprofit payment platform. 

Business Challenges

As a production system processing donor payments, performance and security gaps here carry direct financial and trust risk.

Catastrophic unindexed JOIN

A single JOIN was scanning 216 million rows per execution, one of several severely unoptimized queries in production.

Open-host security exposure

7 user accounts had unrestricted host (%) access, with passwords unchanged since 2021.

Misconfigured InnoDB settings

Misconfigured InnoDB settings, including an undersized log file, were causing I/O and checkpointing inefficiency.

Payment-platform stakes

As a production system processing donor payments, any misconfiguration carried direct financial and trust risk for the NGOs it serves.

Project Objectives

Geopits was asked to conduct a full database health audit covering schema, performance, security, and configuration, identifying risks and producing a prioritized remediation roadmap.

Key Goals:

  • Identify the root cause of severe query performance issues 
  • Audit user access and credential hygiene across all accounts 
  • Deliver a prioritized, actionable remediation roadmap

Solution Provided by Geopits

The audit moved from schema and query analysis through security and configuration, covering every layer of the environment.

Full schema and fragmentation analysis

Schema, storage engine, and fragmentation were analyzed across all 4 databases and 211 tables.

Slow query ranking

performance_schema.events_statements_summary_by_digest was audited to rank the top 15 slow queries by cumulative execution time.

User access security audit

All 13 MySQL user accounts were audited, flagging 7 with unrestricted host (%) access.

Configuration and engine review

InnoDB configuration, buffer pool health, and storage engine usage, including MyISAM and MEMORY tables, were reviewed for reliability risk.

Area
Finding
Recommendation
Query performance 
216M-row unindexed JOIN, tied to 401,949 full-table joins server-wide 
Add missing indexes, prioritize the flagged JOIN 
Duplicate indexes 
12 duplicate index groups identified 
Remove redundant indexes 
Unused tables 
65 zero-record or unused tables across all databases 
Flag for cleanup 
Fragmentation 
4 tables with severe fragmentation 
Rebuild and optimize flagged tables 
User security 
7 of 13 users with unrestricted host access, credentials unchanged since 2021 
Restrict host access, rotate credentials 
InnoDB configuration 
48 MB log file versus a recommended 1 GB 
Resize the InnoDB log file 
Buffer pool health 
99.9991% hit ratio 
Confirmed healthy, no action needed 
Read/write pattern 
~99.9% read, ~0.1% write 
Consider read-replica load balancing 
Storage engines 
21 MyISAM tables and 1 MEMORY table 
Convert to InnoDB for crash recovery and row-level locking 

Key outcomes

Catastrophic query bottleneck identified

A 216-million-row unindexed JOIN was traced directly to 401,949 full-table joins occurring server-wide.

Critical security gaps flagged

7 of 13 MySQL user accounts had unrestricted host access, with passwords unchanged since 2021.

Configuration debt uncovered

InnoDB log files were sized at 48 MB against a recommended 1 GB, contributing to I/O and checkpointing inefficiency.

Storage engine risk identified

21 MyISAM tables and 1 MEMORY table were flagged for conversion to InnoDB, to gain crash recovery and row-level locking.

Healthy signals confirmed too

InnoDB buffer pool hit ratio was confirmed healthy at 99.9991%, and the read and write pattern, about 99.9% read, pointed toward a read-replica load-balancing opportunity.

Conclusion

Geopits completed a full database health audit for Danamojo's donation and payment processing platform, uncovering a 216-million-row unindexed JOIN, critical security gaps across 7 user accounts, and InnoDB configuration debt, and delivered a prioritized remediation roadmap to address them.

Ready to Transform Your Data?

Geopits works alongside your team as a strategic partner, starting with stabilizing your current databases, then modernizing your data infrastructure, and ultimately helping you unlock the full potential of AI.

170

Happy Clients so far

2100+

Databases Managed

142+

Successful Migrations

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
New