1. Stick to lower case MySQL table names in queries

    Software that ran fine on my Windows development machine, had queries fail when running on a Linux based server. Some investigating showed it it caused by the upper case table names in the queries, like:

    select ID, DATA from OBJECTS where CLASS=?
    
    insert into OBJECTS (CLASS, DATA, CREATED) values(?,?,?)
    

    The table names in the database use lower case. What I didn't know is that this difference matters. But the documentation describes that table names in MySQL may be case sensitive, depending on the operating system the database server runs on.

    You can indicate how the database should handle names using the lower_case_table_names system variable, but I think it's safer to always use lower case, just to prevent possible problems caused by differences in the server setup.