List:General Discussion« Previous MessageNext Message »
From:Clyde Lewis Date:August 29 2005 6:29pm
Subject:Re: Index update process 20+ hrs
View as plain text  
This is a test server with nothing else hitting the box.  I imported a 
dump of a production database and is trying to find a way to reduce the 
time it takes to rebuild the index on the mentioned table

Hard Drive spec:
Clarion EMC Hard drive 100 GB internal 3.5" Fibre Channel 10000 rpm buffer


CREATE TABLE `parts` (
  `prtStore` smallint(5) unsigned NOT NULL default '0',
  `prtMMfg` char(3) NOT NULL default '',
  `prtMfg` char(3) NOT NULL default '',
  `prtPN` char(28) NOT NULL default '',
  `prtStripped` char(28) NOT NULL default '',
  `prtSort` char(75) NOT NULL default '',
  `prtPNID` char(36) NOT NULL default '',
  `prtSKU` char(14) NOT NULL default '',
  `prtPic` char(20) NOT NULL default '',
  `prtDesc` char(40) NOT NULL default '',
  `prtDesc2` char(40) NOT NULL default '',
  `prtStkQty` int(10) NOT NULL default '0',
  `prtRsvQty` int(9) unsigned NOT NULL default '0',
  `prtSupFlag` enum('N','Y') NOT NULL default 'N',
  `prtAltMfg` char(3) NOT NULL default '',
  `prtAltPN` char(28) NOT NULL default '',
  `prtVD` tinyint(1) unsigned NOT NULL default '2',
  `prtVQ` tinyint(1) unsigned NOT NULL default '0',
  `prtMClass` char(1) NOT NULL default '',
  `prtSClass1` char(1) NOT NULL default 'N',
  `prtSClass2` char(1) NOT NULL default '',
  `prtUClass` char(1) NOT NULL default '',
  `prtProd` char(3) NOT NULL default '',
  `prtGroup` char(10) NOT NULL default '',
  `prtRptGroup` char(8) NOT NULL default '',
  `prtPNcode` char(3) NOT NULL default '',
  `prtDept` char(3) NOT NULL default '',
  `prtCat` char(3) NOT NULL default '',
  `prtOrderType` char(10) NOT NULL default '',
  `prtDNR` enum('N','Y') NOT NULL default 'N',
  `prtStockingCode` char(1) NOT NULL default '',
  `prtExclude` char(3) NOT NULL default '',
  `prtTax` enum('S','T','E') NOT NULL default 'S',
  `prtNet` enum('N','Y') NOT NULL default 'N',
  `prtMinSell` int(8) unsigned NOT NULL default '0',
  `prtPerCar` smallint(5) unsigned NOT NULL default '0',
  `prtMinStock` int(9) unsigned NOT NULL default '0',
  `prtMaxStock` int(9) unsigned NOT NULL default '0',
  `prtOrdPnt` int(9) unsigned NOT NULL default '0',
  `prtLeadTime` tinyint(2) unsigned NOT NULL default '0',
  `prtSMeasure` char(2) NOT NULL default 'EA',
  `prtPMeasure` char(2) NOT NULL default 'EA',
  `prtBMeasure` char(2) NOT NULL default 'EA',
  `prtPackQty` int(7) unsigned NOT NULL default '0',
  `prtPurchQty` smallint(3) unsigned NOT NULL default '1',
  `prtMinBuyQty` smallint(3) unsigned NOT NULL default '1',
  `prtMaxBuyQty` int(10) unsigned NOT NULL default '0',
  `prtWeight` int(9) unsigned NOT NULL default '0',
  `prtFreight` int(9) unsigned NOT NULL default '0',
  `prtFrghtPPD` enum('Y','N') NOT NULL default 'Y',
  `prtOnOrder` int(9) unsigned NOT NULL default '0',
  `prtInBound` int(9) unsigned NOT NULL default '0',
  `prtWHloc` smallint(5) unsigned NOT NULL default '0',
  `prtWHzone` char(3) NOT NULL default '',
  `prtVBO` int(9) unsigned NOT NULL default '0',
  `prtCBO` int(9) unsigned NOT NULL default '0',
  `prtPriVC` char(3) NOT NULL default '',
  `prtPriVType` enum('M','S') NOT NULL default 'M',
  `prtSecVC` char(3) NOT NULL default '',
  `prtSecVType` enum('M','S') NOT NULL default 'M',
  `prtStocked` enum('Y','N') NOT NULL default 'Y',
  `prtReal` enum('Y','N') NOT NULL default 'Y',
  `prtActive` enum('Y','N') NOT NULL default 'Y',
  `prtCpnStk` enum('N','Y') NOT NULL default 'N',
  `prtCpnVerify` enum('Y','N') NOT NULL default 'Y',
  `prtCpnPNID` char(36) NOT NULL default '',
  `prtLastSold` date default NULL,
  `prtLastReturn` date default NULL,
  `prtLastReceived` date default NULL,
  `prtLastInventory` datetime default NULL,
  `prtCreated` date default NULL,
  `prtRetCore` int(10) unsigned NOT NULL default '0',
  `prtTotRetCore` int(10) unsigned NOT NULL default '0',
  `prtRetDef` int(10) unsigned NOT NULL default '0',
  `prtTotRetDef` int(10) unsigned NOT NULL default '0',
  `prtRetNew` int(10) unsigned NOT NULL default '0',
  `prtTurns` int(9) unsigned NOT NULL default '0',
  `prtFixedFee` int(9) unsigned NOT NULL default '0',
  `prtFFFlag` enum('N','Y') NOT NULL default 'N',
  `prtVOC` int(10) unsigned NOT NULL default '0',
  `prtAreaPop` char(3) NOT NULL default '',
  `prtMfgPop` char(3) NOT NULL default '',
  `prtVehPopulation` int(5) unsigned NOT NULL default '0',
  `prtAvgAge` int(6) unsigned NOT NULL default '0',
  `prtForecast` int(6) unsigned NOT NULL default '0',
  `prtNewPrice1` int(9) unsigned NOT NULL default '0',
  `prtNewPrice2` int(9) unsigned NOT NULL default '0',
  `prtNewPrice3` int(9) unsigned NOT NULL default '0',
  `prtNewPrice4` int(9) unsigned NOT NULL default '0',
  `prtNewPrice5` int(9) unsigned NOT NULL default '0',
  `prtNewPrice6` int(9) unsigned NOT NULL default '0',
  `prtNewPrice7` int(9) unsigned NOT NULL default '0',
  `prtNewCurCost` int(9) unsigned NOT NULL default '0',
  `prtNewAvgCost` int(9) unsigned NOT NULL default '0',
  `prtNewLastCost` int(9) unsigned NOT NULL default '0',
  `prtNewVCost1` int(9) unsigned NOT NULL default '0',
  `prtNewVCost2` int(9) unsigned NOT NULL default '0',
  `prtNewVCost3` int(9) unsigned NOT NULL default '0',
  `prtNewVCost4` int(9) unsigned NOT NULL default '0',
  `prtNewCoreSell` int(9) unsigned NOT NULL default '0',
  `prtNewCoreCost` int(9) unsigned NOT NULL default '0',
  `prtOldPrice1` int(9) unsigned NOT NULL default '0',
  `prtOldPrice2` int(9) unsigned NOT NULL default '0',
  `prtOldPrice3` int(9) unsigned NOT NULL default '0',
  `prtOldPrice4` int(9) unsigned NOT NULL default '0',
  `prtOldPrice5` int(9) unsigned NOT NULL default '0',
  `prtOldPrice6` int(9) unsigned NOT NULL default '0',
  `prtOldPrice7` int(9) unsigned NOT NULL default '0',
  `prtOldCurCost` int(9) unsigned NOT NULL default '0',
  `prtOldAvgCost` int(9) unsigned NOT NULL default '0',
  `prtOldLastCost` int(9) unsigned NOT NULL default '0',
  `prtOldVCost1` int(9) unsigned NOT NULL default '0',
  `prtOldVCost2` int(9) unsigned NOT NULL default '0',
  `prtOldVCost3` int(9) unsigned NOT NULL default '0',
  `prtOldVCost4` int(9) unsigned NOT NULL default '0',
  `prtOldCoreSell` int(9) unsigned NOT NULL default '0',
  `prtOldCoreCost` int(9) unsigned NOT NULL default '0',
  `prtPrice1` int(9) unsigned NOT NULL default '0',
  `prtPrice2` int(9) unsigned NOT NULL default '0',
  `prtPrice3` int(9) unsigned NOT NULL default '0',
  `prtPrice4` int(9) unsigned NOT NULL default '0',
  `prtPrice5` int(9) unsigned NOT NULL default '0',
  `prtPrice6` int(9) unsigned NOT NULL default '0',
  `prtPrice7` int(9) unsigned NOT NULL default '0',
  `prtCurCost` int(9) unsigned NOT NULL default '0',
  `prtAvgCost` int(9) unsigned NOT NULL default '0',
  `prtLastCost` int(9) unsigned NOT NULL default '0',
  `prtVCost1` int(9) unsigned NOT NULL default '0',
  `prtVCost2` int(9) unsigned NOT NULL default '0',
  `prtVCost3` int(9) unsigned NOT NULL default '0',
  `prtVCost4` int(9) unsigned NOT NULL default '0',
  `prtCoreSell` int(9) unsigned NOT NULL default '0',
  `prtCoreCost` int(9) unsigned NOT NULL default '0',
  `prtHstCur` int(10) NOT NULL default '0',
  `prtHstYTD` int(10) NOT NULL default '0',
  `prtLstYear` int(10) NOT NULL default '0',
  `prtDayFill` int(10) NOT NULL default '0',
  `prtLostSales` int(10) unsigned NOT NULL default '0',
  `prtCurPurch` int(10) NOT NULL default '0',
  `prtLifoCost1` int(9) unsigned NOT NULL default '0',
  `prtLifoCost2` int(9) unsigned NOT NULL default '0',
  `prtLifoCost3` int(9) unsigned NOT NULL default '0',
  `prtLifoCost4` int(9) unsigned NOT NULL default '0',
  `prtLifoCore1` int(9) unsigned NOT NULL default '0',
  `prtLifoCore2` int(9) unsigned NOT NULL default '0',
  `prtLifoCore3` int(9) unsigned NOT NULL default '0',
  `prtLifoCore4` int(9) unsigned NOT NULL default '0',
  `prtDisposalFee` int(9) unsigned NOT NULL default '0',
  `prtStkProtect` enum('N','Y') NOT NULL default 'N',
  `prtPrChg` datetime default NULL,
  `prtPrApply` datetime default NULL,
  `prtPrUpdate` enum('N','Y','F','M','I') NOT NULL default 'N',
  `prtCommisionPer` int(6) unsigned NOT NULL default '0',
  `prtUseCommision` enum('N','Y') NOT NULL default 'N',
  `prtRecallMsg` int(10) unsigned NOT NULL default '0',
  `prtRelatedSaleMsg` int(10) unsigned NOT NULL default '0',
  `prtHazmatMsg` int(10) unsigned NOT NULL default '0',
  `prtWarrantyMsg` int(10) unsigned NOT NULL default '0',
  `prtWarrantyLength` smallint(5) unsigned NOT NULL default '0',
  `prtWarrantyUnit` 
enum('NO','MO','DA','YR','WK','HR','LT','LL','ML','TD') NOT NULL default 
'NO',
  `prtWarrantyMsg2` int(10) unsigned NOT NULL default '0',
  `prtWarrantyLength2` smallint(5) unsigned NOT NULL default '0',
  `prtWarrantyUnit2` 
enum('NO','MO','DA','YR','WK','HR','LT','LL','ML','TD') NOT NULL default 
'NO',
  `prtInvMod` char(2) NOT NULL default 'S',
  `prtBelowCostMargin` int(5) unsigned NOT NULL default '0',
  `prtUseBelowCostMargin` enum('N','Y') NOT NULL default 'N',
  `prtAboveCostMargin` int(5) unsigned NOT NULL default '0',
  `prtUseAboveCostMargin` enum('N','Y') NOT NULL default 'N',
  `prtForcedQty` enum('N','Y') NOT NULL default 'N',
  `prtIsRestricted` enum('N','Y') NOT NULL default 'N',
  `prtHazmatCode` char(3) NOT NULL default '',
  `prtShipAnywhere` enum('N','Y') NOT NULL default 'Y',
  `prtCInBound` int(11) NOT NULL default '0',
  `prtPartTax` char(4) NOT NULL default '',
  `prtCoreTax` char(4) NOT NULL default '',
  `prtStateFee` char(4) NOT NULL default '',
  `prtCIDFee` char(4) NOT NULL default '',
  `prtOtherFee` char(4) NOT NULL default '',
  `prtDepth` char(18) NOT NULL default '',
  `prtHeight` char(9) NOT NULL default '',
  `prtWidth` char(9) NOT NULL default '',
  `prtMSDS` int(10) unsigned NOT NULL default '0',
  `prtRetailCatType` char(3) NOT NULL default '',
  `prtLogicOper` enum('N','F','B','L','1') NOT NULL default 'N',
  `prtSubType` enum('NONE','TIRE','BATT','PKG','SMPT') NOT NULL default 
'NONE',
  `prtWrtyTypeID` int(10) unsigned NOT NULL default '0',
  `prtSourceCode` char(3) NOT NULL default '',
  `prtShopPart` enum('N','Y') NOT NULL default 'N',
  `prtPkgGroup` char(10) NOT NULL default '',
  `prtPkgSubGroup` char(10) NOT NULL default '',
  `prtDisclaimID` int(10) unsigned NOT NULL default '0',
  `prtQualifier` char(10) NOT NULL default '',
  `prtStatus` enum('ACTIVE','VOID','CHANGEOVER') default NULL,
  `prtDCPop` char(5) NOT NULL default '',
  `prtCOnOrder` int(10) unsigned NOT NULL default '0',
  `prtIsDisplay` enum('N','Y') NOT NULL default 'N',
  `prtVolProtect` int(10) unsigned NOT NULL default '0',
  `prtDNM` enum('N','Y') NOT NULL default 'N',
  `prtLst2Year` int(11) NOT NULL default '0',
  `prtLst3Year` int(11) NOT NULL default '0',
  `prtDoNotReturn` enum('N','Y') NOT NULL default 'N',
  `prtSalesHistTot` int(10) NOT NULL default '0',
  `prtSalesHistPrd` smallint(5) NOT NULL default '0',
  PRIMARY KEY  (`prtPNID`),
  UNIQUE KEY `prtUPN` (`prtPN`,`prtStore`,`prtMfg`),
  KEY `prtSort` (`prtSort`),
  KEY `sku1` (`prtSKU`,`prtStore`),
  KEY `prtIPN` (`prtStripped`,`prtStore`,`prtMfg`),
  KEY `prtDESC` (`prtDesc`,`prtStore`),
  KEY `prtWrtyTypeID` (`prtWrtyTypeID`),
  KEY `prtStore` (`prtStore`,`prtMfg`),
  CONSTRAINT `parts_f1` FOREIGN KEY (`prtStore`) REFERENCES `cofile` 
(`coStore`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Parts Table'

mysql> SHOW VARIABLES LIKE '%buff%';
+-------------------------------+----------+
| Variable_name                 | Value    |
+-------------------------------+----------+
| bdb_log_buffer_size           | 1048576  |
| bulk_insert_buffer_size       | 8388608  |
| innodb_buffer_pool_awe_mem_mb | 0        |
| innodb_buffer_pool_size       | 52428800 |
| innodb_log_buffer_size        | 8388608  |
| join_buffer_size              | 131072   |
| key_buffer_size               | 67108864 |
| myisam_sort_buffer_size       | 16777216 |
| net_buffer_length             | 65536    |
| preload_buffer_size           | 32768    |
| read_buffer_size              | 1044480  |
| read_rnd_buffer_size          | 262144   |
| sort_buffer_size              | 1048568  |
+-------------------------------+----------+
13 rows in set (0.00 sec)


mysql> SHOW TABLE STATUS LIKE 'parts';
+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+-------------------------------------------------------------------------------+
| Name  | Engine | Version | Row_format | Rows    | Avg_row_length | 
Data_length | Max_data_length | Index_length | Data_free | 
Auto_increment | Create_time         | Update_time | Check_time | 
Collation         | Checksum | Create_options | 
Comment                                                                       
|
+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+-------------------------------------------------------------------------------+
| parts | InnoDB |       9 | Fixed      | 3921279 |           1643 |  
6445596672 |            NULL |   2941255680 |         0 |           NULL 
| 2005-08-29 12:32:47 | NULL        | NULL       | latin1_swedish_ci 
|     NULL |                | Parts Table; InnoDB free: 6144 kB; 
(`prtStore`) REFER `por/cofile`(`coStore`) |
+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+-------------------------------------------------------------------------------+
1 row in set (0.11 sec)



SGreen@stripped wrote:

>
>
> Clyde Lewis <cllewis@stripped> wrote on 08/29/2005 01:47:11 PM:
>
> > Guys,
> >
> > I have a huge table to which I'm attempting to update the foreign key
> > and index. It is taking me more than 20 hrs to complete the process and
> > would like to know if someone can point me in the right direction.
> > Please let me know of any additional information that I should provide.
> >
> >
> > mysql> show index from parts;
> > +-------+------------+---------------+--------------+---------------
> > 
> +-----------+-------------+----------+--------+------+------------+---------+ 
>
> >
> > | Table | Non_unique | Key_name      | Seq_in_index | Column_name   |
> > Collation | Cardinality | Sub_part | Packed | Null | Index_type | 
> Comment |
> > +-------+------------+---------------+--------------+---------------
> > 
> +-----------+-------------+----------+--------+------+------------+---------+ 
>
> >
> > | parts |          0 | PRIMARY       |            1 | prtPNID       |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          0 | prtUPN        |            1 | prtPN         |
> > A         |      326773 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          0 | prtUPN        |            2 | prtStore      |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          0 | prtUPN        |            3 | prtMfg        |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtSort       |            1 | prtSort       |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | sku1          |            1 | prtSKU        |
> > A         |          18 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | sku1          |            2 | prtStore      |
> > A         |          18 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtIPN        |            1 | prtStripped   |
> > A         |      230663 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtIPN        |            2 | prtStore      |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtIPN        |            3 | prtMfg        |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtDESC       |            1 | prtDesc       |
> > A         |      301636 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtDESC       |            2 | prtStore      |
> > A         |     3921279 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtWrtyTypeID |            1 | prtWrtyTypeID |
> > A         |          18 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtStore      |            1 | prtStore      |
> > A         |          18 |     NULL | NULL   |      | BTREE      |   
>       |
> > | parts |          1 | prtStore      |            2 | prtMfg        |
> > A         |       46132 |     NULL | NULL   |      | BTREE      |   
>       |
> > +-------+------------+---------------+--------------+---------------
> > 
> +-----------+-------------+----------+--------+------+------------+---------+ 
>
> >
> >
> >
> > mysql> explain select * from parts;
> > +----+-------------+-------+------+---------------+------+---------
> > +------+---------+-------+
> >
> > | id | select_type | table | type | possible_keys | key  | key_len |
> > ref  | rows    | Extra |
> > +----+-------------+-------+------+---------------+------+---------
> > +------+---------+-------+
> >
> > |  1 | SIMPLE      | parts | ALL  | NULL          | NULL |    NULL |
> > NULL | 3921279 |       |
> > +----+-------------+-------+------+---------------+------+---------
> > +------+---------+-------+
> >
> > 1 row in set (0.00 sec)
> >
> > Files from mysqldata directory
> > -rw-rw----   1 mysql    mysql        18K Aug 25 17:24 parts.frm
> > -rw-rw----   1 mysql    mysql       8.9G Aug 29 12:32 parts.ibd
> >
> >
> > DB MySQL: 4.1.11
> > OS: Solaris 9
> > Hardware: SUN 2900; 32GB RAM
> >
> >
> Would you be so kind as to also provide the results of
>
> SHOW CREATE TABLE parts\G
>  and
> SHOW VARIABLES LIKE '%buff%';
>  and
> SHOW TABLE STATUS LIKE 'parts'\G
>
> Based on the sizes of your fields, you may just have a lot of data to 
> index. The buffer settings will tell us how much space you have 
> allocated for sorting and key creation.
>
> How fast are your disks and what else is using them right now? Make 
> sure your anti-virus scanner is not checking every write from mysql to 
> your data directory (that can really slow you down, especially during 
> an index rebuild).
>
> Please respond to the whole list and not just to me. I have a busy 
> afternoon and may not be able to get back to you very soon.
>
> Shawn Green
> Database Administrator
> Unimin Corporation - Spruce Pine
>
Thread
Index update process 20+ hrsClyde Lewis29 Aug
  • Re: Index update process 20+ hrsSGreen29 Aug
    • Re: Index update process 20+ hrsClyde Lewis29 Aug
      • Re: Index update process 20+ hrsmatt_lists29 Aug
  • Re: Index update process 20+ hrsBrent Baisley29 Aug
  • Re: Index update process 20+ hrsAlexey Polyakov29 Aug
    • Re: Index update process 20+ hrsJeff Smelser30 Aug
Re: Index update process 20+ hrsmatt_lists1 Sep