On Thu, Sep 27, 2012 at 3:02 PM, Akshay Suryavanshi <akshay.suryavansh...@gmail.com> wrote: > Hi, > > 22 indexes are simply too many, assuming they are not composite, which means > you already have a very large table. Secondly the most important bottleneck > is shown by the inserts/sec, only 405 inserts is very very slow. This could > take ages to complete. And the 405 inserts/sec are averages calculated over > some small period of time mostly under a minute, not from the uptime, you > can see that at the top (initial lines) of the Show engine innodb status \G > output. > > Depending upon the machine footprint, inserts/sec should atleast be more > than 10000 inserts/sec even on a busy server. > > Indexes are slowing this down. your calculation of 79 hours should be > correct, only if there are no unique indexes, otherwise this will slow down > more as the data increases.
It finally finished after 55 hours. > On Fri, Sep 28, 2012 at 2:22 AM, Larry Martell <larry.mart...@gmail.com> > wrote: >> >> On Thu, Sep 27, 2012 at 2:37 PM, Akshay Suryavanshi >> <akshay.suryavansh...@gmail.com> wrote: >> > Hi, >> > >> > The alter taking such a long time, could be due to composite indexes on >> > the >> > table. >> >> There are 22 indexes on the table, but none are composites. >> >> > we understand the table is big but not so big to take such a long >> > time. Also we can get a hold of the process looking at the disk space >> > consumed. Usually a tmp table created in data directory would also give >> > a >> > good understanding of the process, remember sizes need not be exact >> > since >> > there might be some defragmentation at file level. >> >> Ok, I will look for a temp file. >> >> > Next you can check inserts/sec in Show engine innodb status \G and >> > calculate >> > the time it should take for the number of rows in the table. >> >> The ROW OPERATIONS section has this: >> >> 1 queries inside InnoDB, 0 queries in queue >> 1 read views open inside InnoDB >> Main thread process no. 7913, id 140206844888832, state: sleeping >> Number of rows inserted 75910241, updated 15602, deleted 70, read >> 9130481311 >> 405.80 inserts/s, 0.00 updates/s, 0.00 deletes/s, 405.80 reads/s >> >> This appears to be statistics over the life of the invocation of the >> server, correct? But using 405.80 inserts/s give that the alter will >> take almost 79 hours. >> >> > >> > Usually, you carry this operation by adding the secondary indexes after >> > the >> > data import or such alters are complete. >> > >> > Regards, >> > Akshay Suryavanshi >> > >> > >> > On Fri, Sep 28, 2012 at 1:56 AM, Rick James <rja...@yahoo-inc.com> >> > wrote: >> >> >> >> Isn't ALTER a DDL, not DML? So I don't think you would find anything >> >> in >> >> undo logs. >> >> >> >> > -----Original Message----- >> >> > From: Larry Martell [mailto:larry.mart...@gmail.com] >> >> > Sent: Thursday, September 27, 2012 1:20 PM >> >> > To: Rick James >> >> > Cc: mysql mailing list >> >> > Subject: checking progress of alter table on an InnoDB table (Was: >> >> > Re: >> >> > checking progress of alter table on a MyISAM table) >> >> > >> >> > So we changed the table from MyISAM to InnoDB. I read that the 'undo >> >> > log entries' shown in 'show engine innodb status' would correspond to >> >> > the number of rows that have been operated on throughout the process >> >> > of >> >> > the ALTER. The table we're altering has 115,096,205 rows, and the >> >> > alter's been running for 28 hours, and the undo log entries is 9309. >> >> > Also that number seems to go up and down. So clearly, it's not what I >> >> > think. >> >> > >> >> > So anyone know a way to monitor the status of the alter now that it's >> >> > an InnoDB table? >> >> > >> >> > >> >> > On Wed, Sep 26, 2012 at 10:31 AM, Rick James <rja...@yahoo-inc.com> >> >> > wrote: >> >> > > Not really. >> >> > > You could look at the .TYD and .TYI file sizes and compare to the >> >> > .MYD and .MYI, but that can be deceptive. If the table is really >> >> > big, >> >> > and has lots of indexes, the generation of the indexes might go >> >> > slower >> >> > and slower -- hence any math on the sizes would be optimistic. >> >> > > >> >> > >> -----Original Message----- >> >> > >> From: Larry Martell [mailto:larry.mart...@gmail.com] >> >> > >> Sent: Wednesday, September 26, 2012 8:52 AM >> >> > >> To: mysql mailing list >> >> > >> Subject: checking progress of alter table on a MyISAM table >> >> > >> >> >> > >> Is there any way to check on the progress of a long running alter >> >> > >> table on a MyISAM table? I know it can be done with an InnoDB >> >> > >> table, >> >> > >> but I haven't found a way to do it on with a MyISAM table. >> >> > >> >> > -- >> >> > MySQL General Mailing List >> >> > For list archives: http://lists.mysql.com/mysql >> >> > To unsubscribe: http://lists.mysql.com/mysql >> >> >> >> >> >> -- >> >> MySQL General Mailing List >> >> For list archives: http://lists.mysql.com/mysql >> >> To unsubscribe: http://lists.mysql.com/mysql >> >> >> > > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql