优化的原因:
- 数据是存放在磁盘上的,读写速度无法和内存相比
- 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢
- 统的吞吐量瓶颈往往出现在数据库的访问速度上
优化方法
1. 设计数据库时:数据库表、字段的设计,存储引擎
2. 利用好MySQL自身提供的功能,如索引等
- 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引。
- 应尽量避免在 where 子句中使用 !=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
- 应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
- 应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10 union all select id from t where num=20
- 应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2
3. 横向扩展:MySQL集群、负载均衡、读写分离
4. SQL语句的优化(收效甚微)**