首页 > 编程知识 正文

数据库常见问题及解决办法,数据库里的主键是什么意思

时间:2023-05-06 21:07:50 阅读:162800 作者:3491

数据库主键角色(2013-02-25 08:41:44 )转载)标记:数据库主键快速更新原理分类)数据库技术最近连接到要求更新数据库数据的项目。 数据库的表也很简单,结构都是一个,以时间值列表的形式记录测量值。 数据的更新不是很难。 计算一下就可以了。 表中有110多万条记录,由于数据量大,数据更新效率过低,更新1440条数据所需时间如下。

【在建立主键之前】2013/2/258336031336046 begin . 2013/2/2583360313360571992013/2/2583360323360053992013/2/2/2583:50 25833603233603360309992013/2/25833603233603911992013/2/25833603233604713992013/2/2583:339开始考虑更新的方式是否有问题仔细分析数据库结构后,发现数据表中没有主键。 主键角色是唯一的; 提高检索速度; 我在那里做了索引。 结果同样是开始的方法,结果如下。 【建立主键后】2013/2/258336035336039 begin . 2013/2/2583360353360391992013/2/2583360353360393992013/2/25833603/2 2583360353360336039992013/2/25833603533603911992013/2/258336033603913992013/2/2583360:39

【分析】为什么做主键会这么快呢? 原因如下。 以前更新时,更新语句如下。 Updata日常报告1 Set电流=1.2 where时间='2012-5-21 '更新时,从日常报告1表中查询时间序列。 因为有110万条数据,所以调查指定记录的平均次数为55万次。 更新1440条数据需要7亿9200万次咨询,所以计算量在1分钟左右是正常的。 提出主键后,对时间序列进行排序,排序后采用二分搜索法进行查询。 这样一来,110万次最差查询的次数为log2 (1100,000 )=24次,即使考虑到最差的情况,更新1440条记录也只需要约3.5万次,难怪用不了1秒钟。

因为发现了原因,所以更加确认了索引的重要性,同时也知道了索引效率的影响幅度。 此外,如果已经建立了主键,并且需要快速更新另一列,也可以在该列上创建索引以实现快速搜索。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。