Query-Related Issues happen if you try to create a table using a transactional storage engine that is not supported by your mysqld  server (or that was disabled with a startup option). If  mysqld  does not support a storage engine, it instead creates the table as a  MyISAM  table, which is nontransactional. You can check the storage engine for a table by using either of these statements: See Section 13.7.7.38, “SHOW TABLE STATUS Statement” , and Section 13.7.7.10, “SHOW CREATE TABLE Statement” . To check which storage engines your  mysqld  server supports, use this statement: See Section 13.7.7.16, “SHOW ENGINES Statement”  for full details. If the total length of the  DELETE  statement for  related_table  is more than the default value of the  max_allowed_packet  system variable, you should split it into smaller parts and execute multiple  DELETE  statements. You probably get the fastest  DELETE  by specifying only 100 to 1,000 related_column  values per statement if the  related_column  is indexed. If the  related_column  isn’t indexed, the speed is independent of the number of arguments in the  IN  clause. If you have a complicated query that uses many tables but that returns no rows, you should use the following procedure to find out what is wrong: B.3.4.7 Solving Problems with No Matching Rows B.3.4.6 Deleting Rows from Related Tables SHOW ENGINES; SHOW TABLE STATUS LIKE ’ tbl_name ’; SHOW CREATE TABLE  tbl_name ; 1. Test the query with  EXPLAIN  to check whether you can find something that is obviously wrong. See Section 13.8.2, “EXPLAIN Statement” . 2. Select only those columns that are used in the  WHERE  clause. 3. Remove one table at a time from the query until it returns some rows. If the tables are large, it is a good idea to use  LIMIT 10  with the query. 4. Issue a  SELECT  for the column that should have matched a row against the table that was last removed from the query. 5. If you are comparing  FLOAT  or  DOUBLE  columns with numbers that have decimals, you cannot use equality ( = ) comparisons. This problem is common in most computer languages because not all floating-point values can be stored with exact precision. In some cases, changing the  FLOAT  to a DOUBLE  fixes this. See Section B.3.4.8, “Problems with Floating-Point Values” . 6. If you still cannot figure out what is wrong, create a minimal test that can be run with  mysql test < query.sql  that shows your problems. You can create a test file by dumping the tables with mysqldump --quick db_name  tbl_name_1  ...  tbl_name_n  > query.sql . Open the file in an editor, remove some insert lines (if there are more than needed to demonstrate the problem), and add your  SELECT  statement at the end of the file. Verify that the test file demonstrates the problem by executing these commands: shell>  mysqladmin create test2 shell>  mysql test2 < query.sql 5311