繁体   English   中英

如何在以下方案中提高性能

[英]How would I improve the performance in the following scenario

我有一个表,有一定数量的列,我已经应用了一定的算法,并能够将现有的表分成5个表。 这是应用算法后数据库的图像。 在此输入图像描述 所以我将stsi表分为base,card_type,country,cvv ,. STSI具有以下属性.. id,name,phone,email,branch,country,ac_no,credit_card,card_type,cvv。 所以在应用算法后,基表有id,name,email,branch,ac_no,credit_card,phone。 剩下的属性是card_type,country和cvv。 这些属性每个都有一个单独的表。 让我们说故事cvv。 属性将是id和cvv。 id将是基表的primary_key 因此,根据图像,我能够减少所形成的较新表中的行数, 因为cvv具有7829行而不是STSI中的9000行,因为STSI中的空值 在空间方面,性能有所提高。 但我无法增加时间复杂度。

我打算较新的表应该具有较小的时间复杂度,因为它们具有相对较少的行数。 但我无法获得任何性能提升。 我尝试过索引,但它没有带来任何性能提升。 当在新表上执行时,我可以做些什么来提高时间性能。

ps:查询是
select id,cvv from stsi - 0.0005 seconds select id,cvv from cvv - 0.0005 seconds
我希望第二个查询应该花更少的时间!

在0.5ms时,限制器可能是实际系统响应时间(磁盘读取,CPU处理等)而不是查询本身。 没有多少优化会减少响应时间。

作为一般规则,当您查看简单的选择查询(从表中选择val1,val2)时,性能的最大驱动因素将是底层系统配置(主要是磁盘配置和内存可用性)和数据库设计。

使用良好的索引可以通过减少必须读取以产生结果的数据量来帮助查询响应时间。 在上面的示例中,在包含ID和CCV的CCV表上放置索引可能会在数据集增长时产生更快的响应。

我假设,基于你的粗体,你的问题源于STSI有比CCV更多的行,你期望CCV更快。 实际情况是,您可能会看到第一个约束(系统配置)而不是数据库设计。

半毫秒快死了。 我不知道你应该期望在消费级硬件上看到更快的东西,即使你将9000行表与9行表进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM