Сколько оперативки нужно для mysql при размере таблицы 2гб?
Однозначно дать ответ сколько необходимо оперативки не получится.
Т.к. всё зависит от того, как вы работает с данными.
Есть ли у вас есть большое кол-во не лимитрованных выборок?
Возможно, вам необходимо сделать рефакторинг кода:
- лимитировать выборки по кол-ву записей
- лимитировать выборку только необходимыми данными
- добавить кеширование
добавление оперативки однозначно поможет с SELECT запросами. Но мало добавить оперативку, нужно еще править конфиг mysql, чтобы эта оперативка могла в принципе использоваться, по умолчанию сразу не будет. 
В случае же изменения схемы всё как правило упирается в диск. Т.к. все операции с БД должны происходить атомарно (то есть или должны быть произведены полностью или не произведены вообще). Если посередине процесса отключится питание или процесс кто-то убьет недождавшись - таблицы должны сохранится в том виде что было до изменения. 
Это очень сложный процесс, и как я говорил упирается больше в диск. Поможет замена hdd на ssd. 
Можно делать копию базы (или только одной нужной таблицы) и меняйте схему, потом переименовывайте. Но если в базу идет и запись то просто тоже не получится.