Does anybody have any comments about this article? :) They arent being very
nice... (read below)... my concern is with the last part, the table level
locking... I have been told by some people that its our major bottleneck,
however by reading the mySQL site it says that table level locking is better
than row-level for some things... and Im still not sure which is better.
MySQL has no subqueries.
Instead of performing one complex query that is entirely processed on the
database end, MySQL users have to perform 2 or more serial queries that each
must go over inter-process or network communication between the app and the
database. This significantly reduces the speed advantages of MySQL.
MySQL has no stored procedures.
If a series of DB actions need to be performed in a block, MySQL requires
each SQL statement to be sent from the app, again in a serial manner, again
over IPC or network.
MySQL has no triggers or foreign key constraints.
Data invariants must be maintained by application-level code, which requires
building carefully-planned abstractions to guarantee integrity (for every
means of accessing your DB), and even more unnecessary back-and-forth
communication between the app and the database.
MySQL only has table-level locking.
Only one user can write to a table at the same time. For web usage, that
falls under the category of "pathetic."