数据库优化之索引

  互联网时代,支持高并发是一个平台成败的关键,是一个企业成长的必经阶段。

支持更高的并发除了提高硬件的性能,就要从优化系统开始做起。

  系统优化也可以多种手段,缓存,分布式集群,优化代码,数据库优化等。

其中消费比最高的当属缓存和数据库优化。

  缓存来说有个弊端就是,对于经常需要更新的数据,不宜做缓存,只能一些相对静态的来做缓存。

数据库优化成了唯一比较通用的高性价比的选择。

  数据库优化首先我们需要知道哪些表是负担比较重的,才能找准优化点,这里怎么找,我之前有写过一篇查看统计表的

可以做下参考,

统计SQLSERVER表行数,以及每天数据变化的行数

  找到这些表之后,第一步就是看索引,代码里面的sql或者存储过程一时半会儿怕影响业务不敢动,但是合理的索引的建立是里面

最具消费比的手段。

索引建立的原则:

1. 在经常用作过滤器的字段上建立索引;

 

2. 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;

 

3. 在不同值较少的字段上不必要建立索引,如性别字段;

 

4. 对于经常存取的列避免建立索引;

 

5. 用于联接的列(主健/外健)上建立索引;

 

6. 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定;

 

7. 缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的查询;充分的利用索引可以减少表扫描I/0的次数,有效的避免对整表的搜索。当然合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。

 

索引分四类:

index ----普通的索引,数据可以重复

fulltext----全文索引,用来对大表的文本域(char,varchar,text)进行索引。语法和普通索引一样。 

unique ----唯一索引,唯一索引,要求所有记录都唯一

primary key ----主键索引,也就是在唯一索引的基础上相应的列必须为主键

注意:尽量减少like,但不是绝对不可用,”xxxx%” 是可以用到索引的

 

posted @ 2017-01-19 09:54  产卵的鱼  阅读(273)  评论(4编辑  收藏  举报