Some Conclusions from Tuning Experiments It helps to drop indexes in an ETL process. Importance of matching data types in joins. Importance of a covering index Also partitioning in space MSSQL is much faster than MySQL Remove useless columns and changing indexes (default ones on autoincrement are not that useful) Adding covering indexes is useful. Modifying a query to add an occupied/unoccupied field -- be careful to keep that extra field up to date Modify the interface to handle interface better. Sometimes you have to force the optimizer to do things (when query is very complex). Minimizing distincts can be very useful. Splitting up batch transactions can be helpful. Vertical partitioning helps scans for wide tables.