Skip to content

High memory usage on large .mdb files #27

Description

@xFA25E

Hi, thanks for the hard work on this project! 🙌

I know the memory usage with large databases is already documented, but I wanted to share my use case and how I resolved it, in case it might help others or inspire a clarification in the docs.

I was writing a simple ETL tool that needed to read from multiple .mdb files, each around 800 MB. I noticed that UCanAccess was consuming a lot of RAM — roughly 1.5 GB per file — which quickly became a problem in low-memory environments, especially since I had to support a 32-bit OS.

I tried setting memory=false, and it definitely reduced memory usage, but the performance dropped significantly (around 6× slower in my case). That’s when I dug into how UCanAccess works and discovered it uses HSQLDB in memory, which helped me understand the tradeoff better.

In the end, I switched to using Jackcess directly, and the performance improved dramatically with much lower memory consumption — enough to run smoothly even on 32-bit Windows.

I understand there's already a note on the homepage about setting memory=false for large databases, but perhaps a small addition could help even more — something like a recommendation to consider using Jackcess directly for large files or constrained environments. I had no idea what Jackcess was at first, so a small pointer might save others the same confusion.

Thanks again for the great tool! Just wanted to share this in the hope it might be helpful.

Feel free to close this issue if you think it's not actionable — I just wanted to share my experience in case it helps.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions