数据库查询优化策略

数据库查询优化策略

1.合理使用索引
数据库服务器对数据进行访问一般采用下面的两种方式:①索引扫面,通过索引访问数据;②表扫描,读表中的所有页。
当对一个表进行查询时,如果返回的行数占全表总行数的10%到15%时,使用索引可以极大的优化查询性能。但是如果查询涉及到全表40%以上的行时,表扫描的效率比使用索引扫描的效率高。
使用索引的通用规则:
1.在经常用作过滤器或者查询频率较高字段上建立索引;
2.在 SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;
3.在不同值较少的字段 上不必要建立索引,如性别字段;
4.对于经常存取的列避免建立索引;
5. 用于连接的列(主键/外键)建立索引;
6.在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定。
2.书写高效的SQL语句
(1)尽量减少使用负逻辑的操作符和函数,因为它们会导致全表扫描,而且容易出错。可以把含有NOT、<>、!=等负逻辑的条件表达式转化为意思相当的正逻辑。
(2)字段提取要多少,取多少,避免使用“select *”格式,因为在数据量较大的时候,影响查询性能的最大因素不在与数据的查找,而在于物理I/0的操作。
(3)避免使用LIKE、EXISTS、 IN 等标准表达式,他们会使字段上的索引无效,引起全表扫描。尽量减少表的连接操作,不可避免的时候要适当增加一些冗余条件,使参与连接的字段集尽量少。
(4)0R会使字段上的索引失效,引起全表扫描。下面的例子中,可以把or子句分开,在把结果加起来,也可以编写一个存储过程来避

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶一码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值