一、利用索引进行快速查找(主要原理是B树)
优点:提高检索速率,降低数据排序成本
缺点:占用空间,降低更新表速度(因为每次更新都会更新索引信息)
二、选择正确的数据库引擎
大部分时间选择innoDB(Mysql默认引擎,提供事务的支持,行级锁,保持并发条件下的数据一致性)
如果对事务的要求性不是太高,则选择MyISAM,它对数据的搜索和插入比较快(不支持事务,表级锁)
三、利用explain查询 SQL执行计划(扫描的行数,索引)
四、利用show profiles 查询之前操作耗时
五、如非必要不要使用select *进行查询
六、in走索引,not in 和<>操作不走索引
七、导入大量数据时使用load
1.有序数据导入效率比无序数据效率高
2.关闭唯一性校验(set unique_checks=0)会提高效率,导入后再添加回来
3.手动提交事务(导入数据前执行set autocommit=0,关闭自动提交,导入后再添加回来)
八、使用连接(INNER JOIN)来代替子查询(Sub-Queries)
九、使用联合(UNION)来代替手动创建的临时表