当前位置:Gxlcms > 数据库问题 > Sql查询优化

Sql查询优化

时间:2021-07-01 10:21:17 帮助过:28人阅读

一,数据库设计角度

  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   

人气教程排行