title: ALTER TABLE without locking the table?
body: <p>When doing an ALTER TABLE statement in MySQL, the whole table is read-locked (allowing concurrent reads, but prohibiting concurrent writes) for the duration of the statement. If it's a big table, INSERT or UPDATE statements could be blocked for a looooong time. Is there a way to do a "hot alter", like adding a column in such a way that the table is still updatable throughout the process?</p>
  
  <p>Mostly I'm interested in a solution for MySQL but I'd be interested in other RDBMS if MySQL can't do it.</p>
  
  <p>To clarify, my purpose is simply to avoid downtime when a new feature that requires an extra table column is pushed to production. Any database schema <em>will</em> change over time, that's just a fact of life. I don't see why we should accept that these changes must inevitably result in downtime; that's just weak.</p>