数据量有100万,or连接导致效率很慢。有木于sql大神重新帮我组织一下。保留条件。谢谢了

SELECTCOUNT(ID)AStp_CountFROMshop_order_detailsDWHERE(D.User_ID='4'ANDD.Del_num=0andD... SELECT COUNT(ID) AS tp_Count FROM shop_order_details D WHERE ( D.User_ID='4' AND D.Del_num=0 and D.Order_status =3 ) LIMIT 1 数据量有100万,or连接导致效率很慢。有木于sql大神重新帮我组织一下。保留条件。谢谢了
SELECT COUNT(ID) AS tp_Count FROM shop_order_details D WHERE ( D.User_ID='4' AND D.Del_num=0 and (D.Order_status = 3 or D.Order_status = 5) ) LIMIT 1 不好意思 or遗漏了
展开
 我来答
百度网友9d41c53
2018-03-06 · TA获得超过489个赞
知道小有建树答主
回答量:359
采纳率:73%
帮助的人:206万
展开全部
SELECT COUNT(ID) AS tp_Count FROM shop_order_details D WHERE ( D.User_ID='4' AND D.Del_num=0 and (D.Order_status = 3 or D.Order_status = 5) )
(1)User_ID、Del_num、Order_status 一定要建立索引,这个才是根本方法。
你这个查询条件,其他的提升应该不大
(2)建议可以union试试,SELECT COUNT(ID) AS tp_Count FROM shop_order_details D WHERE D.User_ID='4' AND D.Del_num=0 and D.Order_status = 3
union
SELECT COUNT(ID) AS tp_Count FROM shop_order_details D WHERE D.User_ID='4' AND D.Del_num=0 and D.Order_status = 5
fb12ab
2018-03-06 · 超过16用户采纳过TA的回答
知道答主
回答量:70
采纳率:73%
帮助的人:14.9万
展开全部
你这个是对于单表的查询,实现过程只需要进行一次全表扫描,没有优化的价值了。要提升效率可以在User_ID,Del_num上建立排序索引。如果已经存在索引,就肯定建立数据库的时候分配的存储空间小,远不能存储100万数据,插入新数据的时候形成多个溢出表,扫描数据库的时候索引得不到有效利用,需要重新维护数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
2018-03-06 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166862
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
哪里有or啊,都是and,你到底要做什么
更多追问追答
追问
大神 我重新改了。下面那条 or遗漏了,帮帮我。。
大神 我重新改了。下面那条 or遗漏了,帮帮我。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式