====== MySQL Tips & Tricks ====== Part of [[engineering:computer_science:databases:mysql|MySQL]] ===== Use Indexes ===== **Pros:** Massive increase in searching performance. **Cons:** Slightly Increase in Storage Requirements. Slightly Increase on Write speeds. **Example:** ALTER TABLE table_name ADD INDEX index_name (column); ===== Enforce Data Integrity at the DB Level ===== **Eg.: **unique constraints, cascade deletes **Pros: **Application agnostic Data Integrity **Cons:** - ===== Log Queries in Development ===== **Pros: **Great to see Queries happening in Real Time **Cons: **Slightly higher storage requirement Don't forget to disable in Production **Usage:** Update my.cnf and add / change: general_log_file = /var/log/mysql_queries.log general_log = 1 check log with: tail -f /var/log/mysql_queries.log ===== Use Transactions for bulk insert: ===== **Pros:** Only one re-index, at the end of the transaction. **Cons: **Visibility of new data only after commit - this can be considered an upside -. **Usage:** START transaction; insert into table values (default, 1); insert into table values (default, 2); insert into table values (default, 3); insert into table values (default, 4); insert into table values (default, 5); COMMIT;