如何将uuid存储为数字?

2023-11-22

根据问题的回答,MySQL 中的 UUID 性能,回答者建议将 UUID 存储为数字而不是字符串。我不太确定如何做到这一点。有人可以建议我一些东西吗?我的 ruby​​ 代码如何处理这个问题?


如果我理解正确的话,您在主列中使用 UUID 吗?人们会说常规(整数)主键会更快,但还有另一种方法使用 MySQL 的黑暗面。事实上,当需要索引时,MySQL 使用二进制比其他任何方法都更快。

由于UUID是128位并且以十六进制写入,因此很容易加速和存储UUID。

首先,在您的编程语言中删除破折号

From 110E8400-E29B-11D4-A716-446655440000 to 110E8400E29B11D4A716446655440000.

现在它是 32 个字符(类似于 MD5 哈希,这也适用)。

自从单身以来BINARYMySQL中的大小是8位,BINARY(16)是 UUID 的大小 (8*16 = 128)。

您可以使用以下方式插入:

INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

并使用以下查询:

SELECT HEX(FieldBin) AS FieldBin FROM Table

现在,在您的编程语言中,在位置 9、14、19 和 24 处重新插入破折号,以匹配您的原始 UUID。如果位置始终不同,您可以将该信息存储在第二个字段中。

完整示例:

CREATE TABLE  `test_table` (
    `field_binary` BINARY( 16 ) NULL ,
    PRIMARY KEY (  `field_binary` )
) ENGINE = INNODB ;

INSERT INTO  `test_table` (
    `field_binary`
)
VALUES (
    UNHEX(  '110E8400E29B11D4A716446655440000' )
);

SELECT HEX(field_binary) AS field_binary FROM `test_table`

如果您想对任何十六进制字符串使用此技术,请始终这样做length / 2为字段长度。因此对于 sha512,该字段将是BINARY (64)因为 sha512 编码的长度为 128 个字符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将uuid存储为数字? 的相关文章

  • MySQL 导入 125000 行 CSV 的最快方法?

    这是我第一次使用 MySQL 除了对现有数据库进行一些基本查询之外 所以我不擅长解决这个问题 我有一个包含 125 000 条记录的 CSV 我想将其加载到 MySQL 中 我安装了版本 8 和工作台 我使用导入向导加载 CSV 它开始导入
  • MySQL有两个不同的密码?

    我确信它们是不同事物的密码 但我不确定是什么 当在终端连接到 MySQL 时 我输入 usr LOCAL mysql BIN mysql h host u username p然后系统会提示我输入密码 密码是 但是当使用 PHP 连接到 M
  • 当数据表输入来自服务器的 JSON 数据时,更改 Google 图表栏颜色

    我一直在努力使用谷歌图表 API 我在 SO 上发现了这个出色的例子PHP MySQL Google Chart JSON 完整示例 https stackoverflow com questions 12994282 php mysql
  • 通过我的java代码导出数据库

    我想使用我的 java 代码导出我的 MySQL 数据库 但我还没有找到任何办法 我想要做的就是我的应用程序中有一个按钮作为 导出数据库 单击该按钮时 我的数据库应导出到指定的路径 我使用了以下代码 但它不起作用 Runtime runti
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri

随机推荐

  • 在 Spring MVC 中从控制器查找区域设置

    我正在使用 Spring 3 0 如何在基于注释的控制器中找到由 LocaleResolver 设置的当前区域设置 Thanks 您可以声明类型的参数Locale在你的控制器方法中 RequestMapping public ModelAn
  • 使用 Java API 将 Parquet 格式写入 HDFS,而不使用 Avro 和 MR

    简单的写法是什么实木复合地板格式 to HDFS 使用Java API 通过直接创建 Parquet SchemaPojo 的 不使用avro and MR 我发现的示例已经过时 并且使用已弃用的方法 还使用 Avro spark 或 MR
  • 应用程序池和工作进程线程之间有什么关系?

    我正在对 ASP NET 应用程序中的重新启动进行故障排除 该应用程序每天重新启动大约 20 次 我们强烈怀疑应用程序的一部分 因为当这一特定功能投入生产时 重启就开始了 我已经使用 log4net 库向这些页面添加了一些日志记录 但我在解
  • 将文本附加到 RichTextBox 的最快方法?

    我有一个带有 RichTextBox 控件的应用程序 其中的过程几乎总是添加文本 RichTextBox1 Text vbNewLine Title AlbumName RichTextBox1 Text vbNewLine Genre A
  • 序数编码或 One-Hot 编码

    如果我们不确定分类特征的性质 例如它们是名义特征还是序数特征 我们应该使用哪种编码 序数编码还是单热编码 关于这个主题有明确的规则吗 我看到很多人在没有方向的分类数据上使用序数编码 假设有一个频数表 some data some col v
  • Swift 中开关盒的详尽条件

    苹果文档 says 每个 switch 语句都必须是详尽的 也就是说 每一个可能的 正在考虑的类型的值必须与其中之一匹配 切换案例 所以在新的 Xcode 中我放置了这样的代码 println UInt16 min Output 0 pri
  • C# 通过 T 的成员对列表 进行二进制搜索

    我有一个基类Event with a DateTime member TimeStamp 许多其他事件类将从中派生 我希望能够快速搜索事件列表 因此我想使用二分搜索 列表数据按时间戳排序 但同时发生的事件可能存在重复的时间戳 所以我开始写这
  • Node.js MySQL 模块 - 抛出错误; // 重新抛出非 MySQL 错误;

    今天我尝试了来自 w3schools 的 node js mysql 片段 var mysql require mysql var con mysql createConnection host localhost user roots W
  • 如何在 Coq 中使用归纳类型来处理案例

    我想使用destruct通过案例来证明陈述的策略 我在网上读了几个例子 但我很困惑 有人可以更好地解释一下吗 这是一个小例子 还有其他方法可以解决它 但尝试使用destruct Inductive three zero one two Le
  • Visual Studio C++ 是否可以在不链接的情况下编译对象

    我正在运行 VS 2010 SP1 并且有一个每周运行一次的特殊分析配置 因为构建服务器需要很长时间来分析所有内容 我希望此配置无需链接即可运行 如果分析通过了项目中的所有代码 那么我希望构建继续进行下一个项目而不链接 我看不出有什么方法可
  • Python套接字接受块-防止应用程序退出

    我编写了一个非常简单的 python 类 它等待套接字上的连接 目的是将此类粘贴到现有应用程序中 并将数据异步发送到连接的客户端 问题是 当等待 socket accept 时 我无法通过按 ctrl c 来结束我的应用程序 我也无法检测到
  • JDBC 到 Spark Dataframe - 如何确保均匀分区?

    我是 Spark 新手 正在致力于通过 JDBC 从 Postgres 数据库表创建 DataFrame 使用spark read jdbc 我对分区选项有点困惑 特别是分区列 下界 上限 and 分区数 文档似乎表明这些字段是可选的 如果
  • JSON - Spring MVC:如何将 json 数据发布到 spring MVC 控制器

    我在发布 JSON 数据时遇到问题jsp to controller 每次我尝试都会收到 ajax 错误Bad Request 我对 JSON 很陌生 我真的不知道我做错了什么 我搜索并尝试了一些可以在该网站中找到的示例 但仍然遇到问题 在
  • 使用 JAX-WS:如何设置用户代理属性

    我对此进行了搜索并发现了一些未遂事件 我创建了一个 java 客户端来使用 JAX WS 来使用 Web 服务 使用 JAX 时有没有办法设置 HTTP USER AGENT 值 我希望在特定客户端 我的 访问它时获得我的网络服务日志 因此
  • 检测何时连接新显示器

    我正在编写一个需要两个显示器的应用程序 一个用于控制面板 另一个用于输出 我所拥有的是这样的 如果只有一个显示器 应用程序会在其上显示两种表单 但如果有两个显示器 则输出表单将转到另一个 问题是这只在应用程序启动时才会发生 换句话说 如果应
  • 在jsf中使用json将数据从bean发送到javascript

    我想将我的数组列表从 ManagedBean 发送到 JavaScript 代码 我的豆子在这里 public void getDataAsJson String dizi Tokyo Jakarta New York Seoul Mani
  • 如何计算列的平均值,然后将其包含在oracle中的选择查询中?

    我的桌子是 create table mobile id integer m name varchar 20 cost integer 其值为 insert into mobile values 10 NOkia 100 insert in
  • jqplot - 单个值,而不是堆积图中的总计

    In a stacked bar chart we can show total of each series in every stack like this However I want value of each series to
  • Identity.EntityFramework OnModelCreating 是如何调用的

    我正在从事两个类似的项目 但我没有创建其中任何一个 它们都具有相同的本地上下文 如下所示 using Microsoft AspNet Identity EntityFramework public class LocalContext I
  • 如何将uuid存储为数字?

    根据问题的回答 MySQL 中的 UUID 性能 回答者建议将 UUID 存储为数字而不是字符串 我不太确定如何做到这一点 有人可以建议我一些东西吗 我的 ruby 代码如何处理这个问题 如果我理解正确的话 您在主列中使用 UUID 吗 人