This should pose no problem whatsoever provided you do the following:
Using ServerA and ServerB with no initial data
STEP 01) Setup MySQL Replication
- ServerA as Master
- ServerB as Slave
STEP 02) Add this line on ServerB
[mysqld]
skip-innodb
STEP 03) On ServerB, service mysql restart
This will automatically convert each InnoDB table into MyISAM as it replicates from ServerA
STEP 04) Load your production data (as a mysqldump) into ServerB
You will now have excellent read speed from ServerB
Let ServerA do all the heavy lifting of INSERTs, UPDATEs, and DELETEs.
I answered a question similar to this back on Aug 14, 2012 : Can I have an InnoDB master and MyISAM slaves with Full-Text for searching? . The person that implemented this was happy.
I have also suggested changing user MyISAM tables to Fixed in the past:
CAVEAT #1
If you already have Data in the Master and Slave and you do not wish to reimport it from a mysqldump, you can do this
STEP 01) Setup MySQL Replication
- ServerA as Master
- ServerB as Slave
STEP 02) Add this line on ServerB
[mysqld]
skip-innodb
STEP 03) On ServerB, service mysql restart
STEP 04) Create this script
MYSQL_USER=username
MYSQL_PASS=password
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
SQLSTMT="SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name', ROW_FORMAT=Fixed;')"
SQLSTMT="${SQLSTMT} FROM information_schema.tables WHERE engine='MyISAM' AND"
SQLSTMT="${SQLSTMT} table_schema NOT IN ('information_schema','mysql')"
SQLSTMT="${SQLSTMT} ORDER BY data_length"
mysql ${MYSQL_CONN} -ANe"${SQLSTMT}" > MassConvertRowFormat.sql
less MassConvertRowFormat.sql
STEP 05) Login to MySQL on the Slave and run
source MassConvertRowFormat.sql
CAVEAT #2
While this topology makes it possible for your question to be answered, this is not "one size fits all." In terms of performance, this may be feasible for one application and horrible for another. This sync of data introduces something else: Replication Lag. MySQL Replication is asynchronous by nature. Make sure you effectively monitor replication lag (Seconds_Behind_Master from SHOW SLAVE STATUS\G
)