Forgive me for sounding a little biased, but I would recommend MySQL DBA Certification for you without hesitation. I say this without reservation because that is how I become a MySQL DBA.
I actually wrote an earlier post about making such a transition from school, from a willing developer, from an unwilling developer, and from a sysadmin.
I also wrote another post on how DBAs should properly interact with developers and project managers.
I would personally say MySQL positions are very underrated in the eyes of most companies, yet the demand is out there. I feel have been respected because of my certification (unique experience, result vary based on who hires). I certified back in August 2007 with my employer paying for the course. At that time, no instructor-led MySQL course was required for certification. Now that Oracle owns MySQL, that may have changed. Please check with Oracle on that.
Most companies that hire MySQL DBAs may expect you to know everything else, (Linux, Apache, Nagios, Munin, JBoss, PHP, Perl, Python, etc). Many other companies may use only MySQL. Overall, you have to be selective when looking. The more disciplines/skills you have outside of MySQL, the better your employment chances are.
What makes the most money is a different story. Hands down, Oracle DBA/Developers make more money. Certification is more expensive because Oracle Associate requires only an exam. To earn deeper Certifications in Oracle, you take necessary exam(s) and you must attend at least one instructor-led Oracle course (Exams run about $200-$300, while the courses run $3,000/each). While Oracle Certification is more rigorous, the respect you get for working with Oracle and the money will indeed come. You can pretty much write your own ticket an an OCP. Going for OCA is a good start.
Regardless of MySQL, Oracle or any other RDBMS, nothing can substitute for having working experience. Due diligence in all DBAs takes will train you to certify quickly.
If there are any Oracle gurus out there, please post your own answers on Oracle as I am sure there a lot more positive things that can be said for Oracle.
If you would like to warm your MyISAM Key Buffer you could run this:
SELECT DISTINCT CONCAT('SELECT ',ndxcollist,' FROM ',db,'.',tb,' ORDER
BY ',ndxcollist,';') SelectQueryToLoadCache
FROM (SELECT engine,table_schema db,table_name tb,index_name,
GROUP_CONCAT(column_name ORDER BY seq_in_index) ndxcollist
FROM (SELECT
B.engine,A.table_schema,A.table_name,A.index_name,A.column_name,A.seq_in_index
FROM information_schema.statistics A INNER JOIN
(SELECT engine,table_schema,table_name
FROM information_schema.tables
WHERE engine='MyISAM' AND table_schema
NOT IN ('information_schema','mysql')) B
USING (table_schema,table_name)
WHERE A.index_type <> 'FULLTEXT'
ORDER BY table_schema,table_name,index_name,seq_in_index) A
GROUP BY table_schema,table_name,index_name) AA
ORDER BY db,tb
;
Here is the output:
+----------------------------------------------------------------------+
| SelectQueryToLoadCache |
+----------------------------------------------------------------------+
| SELECT start_time FROM annarbor.sq_20110722 ORDER BY start_time; |
| SELECT id FROM junk.category ORDER BY id; |
| SELECT id FROM junk.mytabletolimit ORDER BY id; |
| SELECT parent_id FROM junk.observations ORDER BY parent_id; |
| SELECT id FROM junk.observations ORDER BY id; |
| SELECT parent_id FROM junk.pctable ORDER BY parent_id; |
| SELECT id FROM junk.pctable ORDER BY id; |
| SELECT id FROM junk.products ORDER BY id; |
| SELECT id FROM junk.subcategory ORDER BY id; |
| SELECT id FROM test.acties ORDER BY id; |
| SELECT id FROM test.deletekeys ORDER BY id; |
| SELECT email FROM test.emailtable ORDER BY email; |
| SELECT id FROM test.emailtable ORDER BY id; |
| SELECT id FROM test.ft_test ORDER BY id; |
| SELECT id_key FROM test.id_key_table ORDER BY id_key; |
| SELECT id_key FROM test.id_key_table_keys ORDER BY id_key; |
| SELECT id FROM test.mytabletodeletefrom ORDER BY id; |
| SELECT NGRAM_ID FROM test.ngram_key ORDER BY NGRAM_ID; |
| SELECT NGRAM FROM test.ngram_key ORDER BY NGRAM; |
| SELECT NGRAM_ID FROM test.ngram_rec ORDER BY NGRAM_ID; |
| SELECT num FROM test.notforeverdata_matches ORDER BY num; |
| SELECT id FROM test.pamela ORDER BY id; |
| SELECT id FROM test.rolando ORDER BY id; |
| SELECT num FROM test.rolando2 ORDER BY num; |
| SELECT CourseName FROM test.tab ORDER BY CourseName; |
| SELECT CourseName FROM test.tab_to_zap ORDER BY CourseName; |
| SELECT academy FROM test.under99color ORDER BY academy; |
| SELECT id FROM test.under99color ORDER BY id; |
| SELECT id_key FROM test.weekly_batch ORDER BY id_key; |
| SELECT id FROM test.worktable ORDER BY id; |
+----------------------------------------------------------------------+
30 rows in set (0.81 sec)
mysql>
This displays every possible query you could run against MyISAM tables selecting index column fields only. Running those queries will populate the MyISAM Key Buffer.
Here is a similar query to make queries that preload the InnoDB Buffer Pool
SELECT DISTINCT
CONCAT('SELECT ',ndxcollist,' FROM ',db,'.',tb,
' ORDER BY ',ndxcollist,';') SelectQueryToLoadCache
FROM
(
SELECT
engine,table_schema db,table_name tb,
index_name,GROUP_CONCAT(column_name ORDER BY seq_in_index) ndxcollist
FROM
(
SELECT
B.engine,A.table_schema,A.table_name,
A.index_name,A.column_name,A.seq_in_index
FROM
information_schema.statistics A INNER JOIN
(
SELECT engine,table_schema,table_name
FROM information_schema.tables WHERE
engine='InnoDB'
) B USING (table_schema,table_name)
WHERE B.table_schema NOT IN ('information_schema','mysql')
ORDER BY table_schema,table_name,index_name,seq_in_index
) A
GROUP BY table_schema,table_name,index_name
) AA
ORDER BY db,tb
;
Here is a similar query to make queries that preload the InnoDB Buffer Pool and the MyISAM Key Buffer (I posted this back in November 2011)
SELECT DISTINCT
CONCAT('SELECT ',ndxcollist,' FROM ',
db,'.',tb,' ORDER BY ',ndxcollist,';') SelectQueryToLoadCache
FROM (
SELECT
engine,table_schema db,table_name tb,index_name,
GROUP_CONCAT(column_name ORDER BY seq_in_index) ndxcollist
FROM (
SELECT
B.engine,A.table_schema,A.table_name,
A.index_name,A.column_name,A.seq_in_index
FROM
information_schema.statistics A INNER JOIN
(
SELECT engine,table_schema,table_name
FROM information_schema.tables
WHERE engine IN ('InnoDB','MyISAM')
) B USING (table_schema,table_name)
WHERE
B.table_schema NOT IN ('information_schema','mysql')
AND A.index_type <> 'FULLTEXT'
ORDER BY
table_schema,table_name,index_name,seq_in_index
) A
GROUP BY
table_schema,table_name,index_name
) AA
ORDER BY
engine DESC,db,tb
;
If you see the same query appear more than once in a display, this indicates the presence of redundant indexes.
Give it a Try !!!
UPDATE 2012-02-04 21:53 EDT
While one can create caches dedicated to MyISAM via as follows:
SET GLOBAL authentication_cache.key_buffer_size = 1024 * 1024 * 8;
CACHE INDEX mydb.users INTO authentication_cache;
LOAD INDEX INTO CACHE mydb.users;
you must still decide to load all indexes or specific ones. The script I provided simply shows you the list of all possible indexes you can load. You are not obligated to load all indexes, just the ones you know are used the most. If you have the hardware and budget, you load as much as you like into the dedicated MyISAM caches.
Here is something else to consider: All the queries mentioned are actually accessing covering indexes. Running those queries will only access the MyISAM pages of the .MYI file and only the index pages of an InnoDB tables. Table data is never retrieved. In light of this, all or selected queries populated index pages regardless of storage engine.
More Links on the Principles of Covering Indexes
UPDATE 2012-02-04 22:05 EDT
Quick note about InnoDB vs MyISAM. You can cache data pages for InnoDB. MyISAM no.
Best Answer
MySQL certification, exam, course & cost details can all be found on the Oracle Education site here (Indian site linked to):
https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=458&get_params=p_track_id:MYSQLDBA56OCP
The certification process is simple enough to become a MySQL Certified Associate or Professional. You just need to pass the relevant exams (e.g. for Oracle Certified Professional, MySQL 5.6 Database Administrator, you have to pass 1Z0-883 / MySQL 5.6 Database Administrator).
That's it.
For the Expert certification status things are a bit more complex, but check out the Oracle Education site linked above.
The cost is high if you do the courses and the exams. If you're confident in your abilities and have lots of experience, you can do the exams without having done the courses, but in my experience, doing the course is a good grounding and they will cover everything that the exam requires.
How beneficial? Well that depends on the job market, employer's requirements and your other skills. Obviously a certification separates you from people who don't have one, but that's all you can realistically say. There will be non-certified people with more experience than you.