mysql总结

62 阅读1分钟
  1. join时,以小表驱动大表,并在大表相应字段建索引。
  2. order by limit offset,大分页优化:
select t.* 
from (
	select id from tbl order by id desc limit offset,pagesize 
)q 
join tbl t 
on q.id=t.id;
  1. 存储优化
选择最适合的字段属性。
为字段设置NOT NULL DEFAULT,节省mysql对NULL值的判断。 
ip字段映射为long int
  1. 查询优化
尽量避免select * 。 
尽量使用limit对查询条数进行限制。 
拆分大的delete操作,分页delete。
在有索引字段的情况下,查询等尽量使用索引。
  1. 事务:原子性(要么都做要么都不做)、隔离性(两个事务互不影响)、一致性(数据库要么处于事务提交之前的状态,要么处于事务提交以后的状态)、持久性(事务对数据库的修改是持久化的)
  2. redo/undo log 原子性和持久性的保证。
  3. 启用死锁检测选项时,innodb会自动检测死锁并通过回滚事务解决死锁。
  4. binlog的两个使用场景:a.主从同步;b.mysqlbinlog恢复数据。