I had a table with ~0.5M rows and tried to execute a simple query, something like:
UPDATE table SET col1=-90 + RAND()*90, col2=-180+RAND()*360 WHERE col1=9999
but the result was
ERROR 1297 (HY000): Got temporary error 233 'Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations)' from NDBCLUSTER
I have MaxNoOfConcurrentOperations=100000
and slightly more than 100000 rows which satisfy the where condition, so I have changed to this query:
UPDATE table
SET col1=-90 + RAND()*90, col2=-180+RAND()*360
WHERE col1=9999 ORDER BY ID LIMIT 100000
...and got the same error. And same error with LIMIT 1000
.
I have updated rows using a query with LIMIT 100
in loop, but I think that it is a bad solution.
Questions
- Why does MySQL Cluster behave this way?
- How can I update many rows in a single table?