sql千万级记录的相关测试

本文通过创建和删除SQL索引,展示其对查询性能的影响,包括不同场景下的查询速度对比,以及索引对LIKE查询的效果。通过实例演示了如何通过合理使用索引来优化数据库查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CREATE  INDEX myclumn_cindex ON A(Aname)--为A表字段Aname建立名称为myclumn_cindex的非聚集索引

/****** 删除索引 ******/
IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[A]') AND name = N'myclumn_cindex')
DROP INDEX [myclumn_cindex] ON [dbo].[A] WITH ( ONLINE = OFF )
GO
/****** 删除索引 ******/

select * from A inner join B on A.AName=B.AName--(24s)A 1000万 B 1万 [无索引]
select * from A inner join B on A.AName=B.AName--(不到1s)A 1000万 B 1万 [有索引]

select * from A inner join D on A.AName=D.AName--(24s)A 1000万 B 1000 [无索引]
select * from A inner join D on A.AName=D.AName--(不到1s)A 1000万 B 1000 [有索引]

SELECT * FROM A WHERE A.AName='999'--(24s) 1000万 [无索引]
SELECT * FROM A WHERE A.AName='999'--(不到1s 瞬间) 1000万 [有索引]

Select * from A where A.AName like '%999%'--(25s) 1000万 [无索引]
Select * from A where A.AName like '%999%'--(25s) 1000万 [有索引]  索引对like查询基本无影响

update A set AName='的发生的发生的发的沙发打发士大夫的发生的发的发生的发生打发三大发生的发生大幅'+A1 where ID<1000000
--修改100万AName为长字符串
--测试查询结果基本无太大变化,也就是说和字符串的长度应该没有太大关系,只是对like查询有所影响,改变了100W记录比之前多了大概2s
--Like查询应该是对字段的每个片段逐一分析,而这和字符串的长度有直接关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值