Ask HN: Inherited large MySQL database and need to make sense of it

3 points by SnowingXIV ↗ HN
I have this large raw MySQL database (.bak), it's ~2GB and with about 36 tables (some tables have over 400,000 rows). I need to form the relationships and then bring it to life in some form of system. It was previously attached to CF with user accounts, notes, etc. What's the best method of being able to query this and further to make sense to others. Either pull reports, add additional items, etc.

I'm really open to ideas that are the path of least resistance. I can provide screenshots of the table breakdowns if that's needed, but more so looking at something that could import MySQL data into and then form relationship and then from there attach it to some GUI that I could allows users to become part of and perform their searches, and use.

Could I take the .bak file to Amazon RDS and then throw something on top of it?

4 comments

[ 2.9 ms ] story [ 23.8 ms ] thread
So maybe this is not the answer you'll be happy with, but... Maybe it just looks more scary than it is. Do you really need to automate it?

2gb is not that large these days - set up a local MySQL and import it. 36 tables should be doable by hand very quickly if they have good naming. If they don't have good naming, it's not going to link them automatically anyway.

If you want some GUI that allows you to create quick and simple search forms, try libre office base

It's a .bak file and yeah manually doesn't seem too awful as I look through all the tables. I'm thinking first need to install SQL Server Management Studio and then restore the .bak from there and then I don't know what would be the best next steps.
Check the schema - maybe some tables have foreign indexes already. Then try to link up obvious names - do you have a table users and columns named user_id somewhere else?

Then if you still have disconnected tables, take a few sample rows and see what looks like identifiers / keys. You can join that column with another one in the database and see if they match up completely, or if one has IDs that the other one didn't.

As you're doing this, write down comments about what the tables contain, so you can do sanity checks (do users really reference foos? does that make sense?)

I'm assuming your question means you don't have access to the application for this database, or can't run it and sniff the queries from the network.