
Ask HN: Inherited large MySQL database and need to make sense of it - SnowingXIV
I have this large raw MySQL database (.bak), it&#x27;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&#x27;s the best method of being able to query this and further to make sense to others. Either pull reports, add additional items, etc.<p>I&#x27;m really open to ideas that are the path of least resistance. I can provide screenshots of the table breakdowns if that&#x27;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.<p>Could I take the .bak file to Amazon RDS and then throw something on top of it?
======
viraptor
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

~~~
SnowingXIV
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.

~~~
viraptor
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.

------
dazmiller
I have used this tool with success before

[https://www.mysql.com/products/workbench/](https://www.mysql.com/products/workbench/)

You can tell it to reverse engineer the db and it will construct diagrams for
you. It has good tools for visually mapping as well.

And its FREE !!!!!!

