Hey there,
We have a production installation (2 x ndbmtd, 1 x ndb_mgmd, 24 x mysqld) and it's working nicely.
However, the data schema was migrated directly from an old MyISAM installation and a TEXT field is being used on a table which has a lot of inserts, selects and updates. I believe that under NDB this is inefficient.
The TEXT data-type was originally chosen as at the time MySQL had a limit of VARCHAR(255) and we needed to store longer strings.
The table has approximately 6 million rows and about 1.2 million transactions per day.
What's the best way to convert the data-type to VARCHAR(2048)? Is an online ALTER TABLE statment a viable option? If so, would it require double the RAM that the current table uses (as ALTER TABLE often makes a copy first before renaming)? Would it take a long time, and would the database be accessible for reads AND writes during the execution of the statement?
I'd prefer to avoid any downtime if possible, so your advice and suggestions would be appreciated.
We have a production installation (2 x ndbmtd, 1 x ndb_mgmd, 24 x mysqld) and it's working nicely.
However, the data schema was migrated directly from an old MyISAM installation and a TEXT field is being used on a table which has a lot of inserts, selects and updates. I believe that under NDB this is inefficient.
The TEXT data-type was originally chosen as at the time MySQL had a limit of VARCHAR(255) and we needed to store longer strings.
The table has approximately 6 million rows and about 1.2 million transactions per day.
What's the best way to convert the data-type to VARCHAR(2048)? Is an online ALTER TABLE statment a viable option? If so, would it require double the RAM that the current table uses (as ALTER TABLE often makes a copy first before renaming)? Would it take a long time, and would the database be accessible for reads AND writes during the execution of the statement?
I'd prefer to avoid any downtime if possible, so your advice and suggestions would be appreciated.