从机器性能角度看

  • 内存、cpu 、io

  • 数据库设置优化

  • 坚持不住的话 引入 nosql 缓存存储一些数据

sql优化

执行计划索引存储过程读写分离分表分库

1.去重不要使用distinct,可用group by 分组去重。

2.增加索引: (1)增加索引的字段,值尽量唯一;所在表执行dml语言少; (2)Where语句后的筛选字段,可增加索引; (3)Order by语句后的排序字段,可增加索引; (4)多对多关系的,如author in (select actorid from t_actorrt) 中的actorid,可增加索引。

3.不要使用with...as 语句。

4.Order by 后面的排序字段,不要使用to_number等方法

5.不要使用标量子查询,如:select id, (select name from t_user where author=id) author from tlk_xxxxxxxxxx ,括号中的语句不应该出现,应该用关联的方式。

6.关联嵌套的子表(特指select出来的表)不应该超过3个。

7.没使用到的字段,不要查询出来,更不要用*。

8.应对哪种表应用分区功能;: 1.大于2GB的表  2.含有1000万条记录以上的表,表中含有的数据越多,SQL操作的执行速度就会越慢。  3.将会含有大量数据的表。  4.强行拆分后可利于并行操作的表。  5.含有需要定期归档日志或删除部分的表。