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

Sql查询优化

时间:2017-10-30 17:09:18      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:设计   临时表   导致   tween   数据库   字段   全表扫描   数字   arch   

一,数据库设计角度

  1.尽量避免全表查询,首先考虑在where一级order by的列上建立索引。

  2.尽量避免在where的子句中进行null判断,导致引擎放弃索引进行全表扫描。列如:select id from t where num is null;可以在num设置为0,确保不会出现null

  3.并不是所有索引对查询都有效,如果字段中含有大量重复数据,sql会对查询进行优化,不会使用索引

  4.索引会提高select效率,但是会降低insert和update,因为要建立索引,所以一个表中索引最好不要超过6个

  5.避免更新索引数据列

  6.尽量使用数字型字段

  7.使用varchar/nvarchar代替char/uchar

  8.尽量使用表变量代替临时表

  9.避免频繁创建和删除临时表

二Sql方面

  1.尽量避免在where子句中使用!= ,<与>,会导致引擎放弃索引进行全表扫描

  2.尽量避免在where子句中使用or会导致引擎放弃索引进行全表扫描

    select id from t where id = 1 or id = 2可以使用select id from t where id union all select id from t where id = 2

  3.in 与 not in也要慎用会导致全表扫描,对于连续的数值可以使用between

    select id from where id in (1,2,3)可以使用select id from where id between 1 and 3

Sql查询优化

标签:设计   临时表   导致   tween   数据库   字段   全表扫描   数字   arch   

原文地址:http://www.cnblogs.com/derleser/p/7754919.html

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