I agree, except for one addition.
Never modify a running system/configuration to do testing or development. Always test and develop on another system or an alternate server or instance. You can run many instances of the same server or many versions of MySQL on the same machine.
Start another instance of MySQL on an alternate port and the alternate data dir. Now you can dump and import while both servers or instances are running.
Excerpt from the manual: http://dev.mysql.com/doc/refman/5.0/en/multiple-unix-servers.html
You need not compile a new MySQL
server just to start with a different
Unix socket file and TCP/IP port
number. It is also possible to use the
same server binary and start each
invocation of it with different
parameter values at runtime. One way
to do so is by using command-line
shell> mysqld_safe --socket=file_name
To start a second server, provide
different --socket and --port option
values, and pass a --datadir=path
option to mysqld_safe so that the
server uses a different data
Same idea for windows, see the manual for syntax.
When making changes for performance or to fix "bugs", prove/test the changes on another server/instance before final testing on a running/production server. This applies to configuration, indices, field types, constraints, procedures, etc..