0

There are 10k products, websites (over 50 ) and multiple store (i.e. over 100) in my web-store and I am getting following error during magento re-indexing process.

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error: 1114 The table 'catalog_product_index_price_bundle_sel_tmp' is full' in /home/staging2/public_html/newclubcolors/lib/Zend/Db/Statement/Pdo.php:234

I have checked lot of information on google but able to resolve this problem.

According to them, i have increased the values of mysql variables but still, i am getting table full error error

max_heap_table_size = 8096M:autoextend
tmp_table_size = 4096M:autoextend
innodb_data_file_path = ibdata1:4G:autoextend

Any help would be appreciated.

Thanks!

  • Is this Enterprise or Community? Your tags are a little confusing . – Paul Nov 11 '16 at 11:51
  • I am getting this issue on enterprises. – zed Blackbeard Nov 11 '16 at 11:52
0

If this is happening during a partial reindex, you may find it useful to reduce the batch size of the index. By default, this is 500 products, however if you have a number of stores or groups the size of the data being indexed can be too large.

The batch size is in app/code/core/Enterprise/Index/Helper/Data.php as a constant value called BATCH_SIZE. If you rewrite this helper you can reduce the batch size until the size of data fits into the the tables. It will take a little longer to complete the index but it's not awful.

  • what should i set the batch_size value ? I mean approx value and can you please explain the use batch_size ? – zed Blackbeard Nov 11 '16 at 12:18
  • With partial indexing (introduced in later version of EE), Magento will keep a changelist of the entities that require a reindex. This means that when the indexer next runs, it can just reindex those items rather than everything on your website. If that change list is large, it will split them up into batches - this is what the batch size constant controls e.g. if you have 5000 products in the list and a batch size of 500 items, it will do 10 runs of the indexer to process them. I'd suggest reducing it by 100 items at a time and find the right level until it works. – Paul Nov 11 '16 at 12:51
  • Do you think, batch size will resolve the problem ? Let me do it. – zed Blackbeard Nov 11 '16 at 13:33
  • It helped for me with the same problem. I had to rewrite the getBatchSize() function so that it would use my constant. – Paul Nov 11 '16 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.