我有一个表,具有一定数量的列,我应用了某种算法,并且能够将现有的表分为5个表。这是应用算法后的数据库图像。
因此,我已将stsi表划分为base,card_type,country,cvv 、。 STSI具有以下属性:ID,名称,电话,电子邮件,分支机构,国家/地区,ac_no,credit_card,card_type,cvv。因此,在应用算法后,基表将具有ID,名称,电子邮件,分支,ac_no,credit_card,电话。其余属性是card_type,country和cvv。这些属性各有一个单独的表。让我们说说传说中的cvv。该属性将是id和cvv。该ID将是基表的primary_key
。因此,根据镜像,由于STSI 中为空,因此cvv具有7829行而不是STSI中的9000行,因此我能够减少形成的较新表中的行数。在空间方面,性能得到了提高。但是我无法增加时间复杂度。
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行表进行比较,您也应该期望在消费级硬件上看到更快的结果。