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 options:
shell> mysqld_safe --socket=file_name --port=port_number
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 directory.
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..