首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将散列ID存储在DB中并获取它,还是在代码本身中创建散列ID并使用它?

将散列ID存储在DB中并获取它,还是在代码本身中创建散列ID并使用它?
EN

Stack Overflow用户
提问于 2014-08-01 21:00:30
回答 1查看 163关注 0票数 0

我有两种处理散列I的方法,但需要您对哪一种比另一种更好,以及为什么?我是,只对逻辑感兴趣,而不是我用于散列或表数据类型等的技术!

我将生成一个URL来处理删除产品的操作,该URL将如下所示(最后一段是散列(SHA1) product.id):

代码语言:javascript
复制
...../delete/product/123c45c789ds654dedkjfghr87frd

场景1:表中的存储哈希ID,并按如下方式使用:

>查询:

代码语言:javascript
复制
DELETE ...... WHERE hash_id = '$url_hash_id'

>表:

代码语言:javascript
复制
products
id - INT
hash_id - VARCHAR(40)

场景2:不将散列ID存储在表中,而是每次创建URL并按如下方式使用时生成该ID:

>查询:

代码语言:javascript
复制
DELETE ...... WHERE SHA1(id) = '$url_hash_id'

>表:

代码语言:javascript
复制
products
id - INT

我能想到的是:

  1. 场景1-表变得更大(可能是整个DB,因为我可能会为所有表实现相同的列),但是哈希过程只运行一次。
  2. 场景2使用的表空间较少,但每次需要时都调用mySql SHA1()函数和php SHA1()函数。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-01 21:44:36

我会使用场景1,原因很简单,因为WHERE SHA1(id) = '$url_hash_id'不会使用mysql索引。有了大量的记录,表扫描将比存储hash_id和该列的索引所带来的额外开销更大。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25088619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档