Page 1 of 1

[Err] 1030 - Got error 139 from storage engine

Posted: Tue Nov 30, 2010 9:36 am
by yacahuma
Hello,

I am getting this error when updating my database:
[Err] 1030 - Got error 139 from storage engine

For the type of application I have, it make sense to have everything in just one table. I have over 60 columns. There are all pieces of information of one thing. So there is no sense on separating the information into different tables. In 2006 someone in this forum had the same problem. He fix it by separating the data in multiple tables. I cant believe 4 years later mysql has done nothing to fix this.

It only happens using innodb , not myisam

How to duplicate
create a test table
id int
d1 blob(o longblob)
d2 blob(o longblob)
...
d15 blob(o longblob)

update UPDATE test set d1 = AES_ENCRYPT('STRING WITH 1000 characters','somekey') WHERE id=1
update UPDATE test set d2 = AES_ENCRYPT('STRING WITH 1000 characters','somekey') WHERE id=1
update UPDATE test set d3 = AES_ENCRYPT('STRING WITH 1000 characters','somekey') WHERE id=1
continue updating until getting error( at about d12)

I would like to know if anyone has better options than to separate in tables, using myisam (which I dont want to do because the way mysql lock the full table), or switching databases (maybe postgre)

Thank you

Re: [Err] 1030 - Got error 139 from storage engine

Posted: Tue Nov 30, 2010 11:28 am
by Weirdan

Re: [Err] 1030 - Got error 139 from storage engine

Posted: Tue Nov 30, 2010 12:03 pm
by yacahuma
InnoDB restricts row size to something less than half a database page (approximately 8000 bytes), not including VARBINARY, VARCHAR, BLOB, or TEXT columns.

Is says not including BLOB, what does that means? It means is different for BLOBs?

Re: [Err] 1030 - Got error 139 from storage engine

Posted: Tue Nov 30, 2010 12:09 pm
by Weirdan
yacahuma wrote:Is says not including BLOB, what does that means? It means is different for BLOBs?
Blobs are stored on a separate table pages, so they are not counted towards* the row size limit.

*Usually first N bytes of a blob are stored in the row, when N depends on table engine in use.