MYSQL网站制作之30万条数据疾速检索的T
DBaaS系统其实具有更大的市场机遇:像其他云服务一样,DBaaS意味着更短的销售周期,更少的启动费用,持续不断的收入,也意味着比之前更多的客户。</p>数据库:30万条,有ID列但无主键,在要搜刮的“分类”字段上建有非会萃索引
历程T-SQL:
/*
用户自界说函数:实行工夫在1150-1200毫秒摆布
CREATEFUNCTION.(@typesnvarchar(4))
RETURNStableAS
returnselect书名from图书三十万条Where分类Like%+@types+%
存储历程:
CREATEPROCEDURE.(@typennvarchar(4))
AS
select书名from图书三十万条Where分类Like%+@typen+%
*/declare@adatetime,@bnvarchar(4)
set@a=getDate()
select书名from图书三十万条Where分类Like%医学%--“分类”列有非会萃索引,比会萃索引1150快一点,差未几实行工夫在1100摆布
--select书名fromgethl(医学)--利用用户自界说函数,效力和创建会萃索引一样,还稍慢一点在1150-1200
--Executegetfl医学--挪用存储历程不克不及用括号包括参数Executegetfl(医学)
--select书名fromVIEW1--视图
print运转工夫:
printdatediff(ms,@a,getDate())结论:
1、以上各类利用间接查询、函数、视图、存储历程功能都差未几;
2、在这类文本字段,非会萃比会萃索引效果好。
比这些更好的办法是,在别的一个表上创建响应的检索ID,会更快!
正如前文所提到的,MySQL易学、易部署、易管理和易维护。 另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程); 所以你总能得到相应的升级版本,来满足你的需求。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。 可以动态传入参数,省却了动态SQL的拼写。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右) 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
页:
[1]