I am feeling more motivated to interrupt this operation now. What would be an effective way to do that? As a reminder, I submitted this operation using the GUI administration tool --- specifically the table editor. The whole tool is unresponsive while this operation is running. I can run and use another instance of the GUI administration tool.
If I succeed in interrupting this operation, presumably the rollback will take quite a while. How can I tell whether I have successfully interrupted the operation and the rollback is what's nailing my machine? Thanks, Mike Spreitzer SMTP: [EMAIL PROTECTED], Lotus Notes: Mike Spreitzer/Watson/IBM Office phone: +1-914-784-6424 (IBM T/L 863-) AOL Instant Messaging: M1k3Sprtzr Mike Spreitzer/Watson/[EMAIL PROTECTED] 02/19/08 08:34 PM To "Baron Schwartz" <[EMAIL PROTECTED]> cc mysql@lists.mysql.com Subject Re: How bad is adding BLOB column and index at the same time? Thanks, Baron. Yes, the table is bigger than memory. It took about 2.5 days to create the table, inserting about 7,000 rows at a time; this column and index addition has been running for about a day now. I notice you did not say it was terribly stupid to create this index before putting the final data in the new column. So I infer there is no big motivation to interrupt the operation I have going. Thanks, Mike "Baron Schwartz" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 02/19/08 08:13 PM To Mike Spreitzer/Watson/[EMAIL PROTECTED] cc mysql@lists.mysql.com Subject Re: How bad is adding BLOB column and index at the same time? Hi, On Feb 19, 2008 5:20 PM, Mike Spreitzer <[EMAIL PROTECTED]> wrote: > I am new to MySQL, and wonder if I have done something terribly stupid. I > have an InnoDB table with 27 million rows. Without thinking very much, I > issued the following command through the GUI administration tool: > > ALTER TABLE `wyky`.`externallinks` ADD COLUMN `el_p2` BLOB NOT NULL AFTER > `el_index`, > ADD INDEX `el_p2`(`el_p2`(150)) > > Of course, all the values in this column will be the same. The index > will, if this ever completes, indicate that one value is associated with > all 27E6 rows. My primary question is, will this take O(27E6) time or > something worse (e.g., O(27E6 squared) time)? > > Of course my plan is to eventually put some interesting data in that new > column. I do not really need the index until the data is there. > > This database is not being used on-line, this is just for study, so I do > not mind large batch operations. I just don't want to be grossly stupid > in my choice of batch operations. > > My second question is: if I have indeed done something grossly stupid, > what is the best (if there is any at all!) way to interrupt it and > proceed. If the table is bigger than memory, building the index will be very slow. If you interrupt it, it's just going to roll back everything it's done so far. So you have the choice of either letting it finish and then dropping the index, or killing it and letting it roll back. (You can't prevent the roll back, even if you restart).