mysql数据库使用32位的uuid作为主键与使用int自增作为主键

使用自增 ID 的内部结构为顺序填充,最大化页面填充率,减少页分裂和碎片,提升性能。然而,自增 ID 也存在潜在问题,如业务增长信息泄露、高并发负载下的锁争用以及自增锁的性能损失。结论是,尽管自增 ID 存在缺点,但在实际开发中,建议遵循 MySQL 官方推荐使用自动增长的主键 ID。MySQL 内部机制...
mysql数据库使用32位的uuid作为主键与使用int自增作为主键
在 MySQL 中设计表时,官方推荐使用自动增长的主键 ID 而非 UUID 或雪花 ID。本文将探讨为何不建议使用 UUID,并分析使用 UUID 的数据库性能问题。

本篇博客将使用控制变量法,通过建立多张表(user_auto_key、user_uuid、user_random_key)并测试它们的插入速度和查询速度。表的区别仅在于主键生成策略,而其它字段保持一致。我们将使用 Spring 的 jdbcTemplate 进行增查测试。

通过技术框架(Springboot+jdbcTemplate+junit+hutool),在相同环境中写入同等数量的数据,分析插入效率。程序采用随机生成的数据,包括名字、邮箱、地址等。

程序写入结果将展示 user_key_auto、user_random_key 和 user_uuid 表的插入情况。同时,通过测试插入 10W 数据,对比在数据量 100W 左右时,UUID 插入效率垫底的现象。

使用 UUID 的索引内部结构与自增 ID 的差异在于,UUID 每次插入的位置不固定,这导致写入目标页可能不在内存中或需要频繁进行页分裂,增加额外操作和数据移动,降低效率。

使用自增 ID 的内部结构为顺序填充,最大化页面填充率,减少页分裂和碎片,提升性能。然而,自增 ID 也存在潜在问题,如业务增长信息泄露、高并发负载下的锁争用以及自增锁的性能损失。

结论是,尽管自增 ID 存在缺点,但在实际开发中,建议遵循 MySQL 官方推荐使用自动增长的主键 ID。MySQL 内部机制复杂,优化空间大,后续开发需深入了解。

本篇博客提供了实验代码和结果分析,以供参考。更多相关技术内容和实践代码请参考附录链接。关注 Java 编程宇宙,获取更多 Java 学习资源。2024-09-09
mengvlog 阅读 339 次 更新于 2025-09-09 04:32:20 我来答关注问题0
  •  云易网络科技 MySQL压缩包32位下载及安装教程mysqlzip32位

    在cmd命令行窗口中输入以下命令:cd C:\mysql-8.0.21-winx64\bin mysqld –initialize –console 此时,MySQL数据文件和日志文件已经创建。在控制台输出信息中可以找到MySQL的root账户密码。该密码用于后续连接MySQL的管理操作。同时需要修改密码,输入以下命令:mysql -u root -p ALTER USER...

  •  云易网络科技 MySQL个人版32位下载指南mysql个人版下载32

    启动MySQL服务后,可以使用MySQL自带的客户端工具mysql.exe来登录MySQL。打开命令提示符,输入以下命令:C:\> cd “C:\Program Files\MySQL\MySQL Server 5.7\bin”C:\Program Files\MySQL\MySQL Server 5.7\bin> mysql -u root -p 按照提示输入密码,即可登录MySQL数据库。步骤八:使...

  • 那个pasword为*是可以输出来的,如果要在mysql里面存储密码,可以考虑用字符串类型 char(32) 32位,然后将前台html里面输入的密码用MD5多加密几次(加密一次很容易破解),然后将加密后的密码(32位)插入到数据库中。如果以后要实现登陆验证功能,可以把用户登陆的密码MD5后再跟数据库比较。

  •  翡希信息咨询 MySQL安装教程

    输入mysql -u root -p命令,然后输入您在安装时设置的root用户密码进行登录。执行SQL语句:登录成功后,您可以执行SQL语句来验证MySQL是否安装成功。例如,输入SHOW DATABASES;命令来查看数据库列表。通过以上步骤,您应该已经成功在Windows系统上安装了MySQL。如果遇到任何问题,请检查安装日志或参考MySQL官方文...

  •  a24862001 我有mysql-5.5.20-win32.msi但不知道怎么安装和配置里面的东西,大侠们能不能给我详细安装和配置过程,急

    登录Mysql数据库;输入:mysql -u[username] -p 回车后输入密码,便可以进入Mysql了;如:现在用root登录Mysql,那么输入:Mysql -uroot -p (-u和username之间可以加空格,也可以不加)回车,输入密码,再回车;可以看到提示符变为mysql>,证明已经进入mysql 更改mysql用户密码:mysqladmin -u[username...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部