码迷,mamicode.com
首页 > 数据库 > 详细

数据库优化

时间:2018-06-25 21:50:14      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:sts   sub   管理   标准   nio   strong   存储   字段   访问   

 

索引

1.避免在where语句中对字段进行null值判断,否则导致引擎放弃使用索引。

2.避免使用!=或者<>操作符

3.避免or select id from t where num=10 union all select id from t where num=20

4.应尽量避免在 where 子句中对字段进行表达式 函数 操作,这将导致引擎放弃使用索引而进行全表扫描

5.尽量避免在索引过的字符数据中,使用非打头字母搜索。这也使得引擎无法利用索引。

6.4.in 和 not in 也要慎用,因为IN会使系统无法使用索引,而只能直接搜索表中的数据 见如下例子: SELECT * FROM T1 WHERE NAME LIKE ‘%L%’ SELECT * FROM T1 WHERE SUBSTING(NAME,2,1)=’L’ SELECT * FROM T1 WHERE NAME LIKE ‘L%’ 使用聚集索引来优化查询速度,比如查询某段时间,是线性的。


使用分表查询,按照日期单独建表,把一张表分成多张表

使用数据库分区技术,把

  分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。

  分区表是把数据按设定的标准划分成区域存储在不同的文件组中,使用分区可以快速而有效管理和访问数据子集。


查询语句的优化

写数据语句时尽可能减少表的全局扫描,利用查询条件来优化查询速度

1. 尽量想办法使用临时表扫描替代全表扫描;
2. 抛弃in和not in语句,使用exists和not exists替代;
3. 和客户确认,模糊查询是否有必要,如没有必要,去掉like语句;
4. 注意建立适当的,符合场景的索引;
5. 踩死 "*" 号;
6. 避免在where条件中对字段进行函数操作;
7. 对实时性要求不高的报表,允许脏读(with(nolock))。

数据库优化

标签:sts   sub   管理   标准   nio   strong   存储   字段   访问   

原文地址:https://www.cnblogs.com/vince66/p/9226241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!