Håkon Nessjøen writes:
MySQL only supports locks on rows with the InnoDB
engine. But as far as I
know, when installing the mysql tables with kamdbctl, the tables are added
with the MyISAM engine.
MyISAM should not be hard coded in the mysql scripts. there should be a
variable in the beginning of the scripts that tells what engine to use in
the same way there are variables for db users/passwords.
So, should I start modifying the install scripts so
that we use InnoDB
engine, or is a table-lock sufficient when myisam is used? Mysql will not
give an error if the engine does not support locking on individual rows. So
the experience will be transparent for the end user, except for the locking
of the whole table.
it is enough if the issue is described in the README of the modules
affected, i.e., a note that tells to use InnoDB engine in order to get
locking benefits when db is MySQL.
Also, it is important that the columns that the query
compares against, is
indexes, or else the table will be locked even if the table engine is
InnoDB. I'm not sure if presence only queries for indexed columns?
if some indexes are missing, they should be added.
-- juha