Forum Moderators: open
Depending on the content, once converted, this might only be 40-50MB of zipped content as a database dump, which as far as MySQL is a fairly small data set (a site that I have that has 10,000 pages is about 12MB as a zipped MySQL dump, but it has very simple structure).
Wordpress.com runs on WordpressMU which is essentially a multi-user wrapper for WP, and it hosts 1.7 million blogs and gets 60,000 posts per day.
The key question that determines how hard this is remains the same regardless of scale (except when the scale is very small): what format is the data in currently? Obviously, you'll want to write some sort of conversion script and the more regular the data, the easier that is. If it's not uniform enough to use regular expressions to extract the core data (title, H1, article body, meta data, etc), then it's going to be a lot of work.
Most of your time will be spent up front getting the MySQL INSERT queries built and getting all the little glitches out of your data (escaping all apostrophes and so on an so forth). Regular expressions are your dearest friend.
Then once it's up and running, 30,000 records is a small number if you are doing searches on indexes, but can take some time on non-indexed columns. So make sure that most obvious searches use indexed columns or multi-column indexes that match the search. The rule of thumb is that indexes speed up fetches and slow down writes.
At that point, the question is less a matter of the size of your DB than the amount of traffic you're getting, what plug-ins you have running, and so forth. For those issues, search Google on
"Wordpress scalability"
"High traffic wordpress"
And you'll get some useful results.
[edited by: jatar_k at 6:59 pm (utc) on Feb. 26, 2008]
[edit reason] no urls thanks [/edit]
1. figure out what "chunks" you need. If you'll be using any plugins that allow for custom meta data (title, description), and so forth, install those first. Then figure out what you're going to need to parse out: <title>, meta description, h1, etc.
2. figure out how to parse your existing data into those pieces. Test on a few pages.
3. figure out what INSERTs you need get that data into MySQL. Test on a few queries.
4. parse your data out into INSERTs and insert into a database. You'll likely get some errors and you'll get the text just before the error. Hunt down those sections until your data is cleaned up enough to go into a DB-table in one go without errors.
5. Look at a bunch of pages. Scan a dump of your new database (do you have any character encoding issues? etc etc).
6. Get it up on a test server and run something like Xenu on it. Looking good? Launch on a low-traffic day and monitor logs for 404s etc etc etc.
Have fun!
Actually, I don't mean to make the task itself sound unpleasant. It's meant more as a commentary on how I feel about taking on extra work. You would get better value from someone who is a real Wordpress nut anyway.
As for how much someone else would charge, you need to find someone you trust and get a bid from them after they've had time to poke around your system. Again, it's all about how the data is currently stored and structured. Could be dead simple, could be miserable.