返回顶部
首页 > 资讯 > 数据库 >mysql中采用uuid而不使用自增ID有什么优势
  • 706
分享到

mysql中采用uuid而不使用自增ID有什么优势

2024-04-02 19:04:59 706人浏览 薄情痞子
摘要

小编给大家分享一下Mysql中采用uuid而不使用自增ID有什么优势,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

小编给大家分享一下Mysql中采用uuid而不使用自增ID有什么优势,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

采用uuid而不使用自增ID的,
优势:
1、数据迁移时不会有主键冲突。
2、在使用分布式架构的主主同步时,也无需配置auto_increment_offset/auto_increment_increment,保证搭建比较简单。
劣势:
1、uuid比bigint占用存储空间大。
2、数据量达到500w以上性能明显没有bigint快。
(性能从哪些方面去比较呢?)
单条查询,
范围查询,
范围统计,
插入,
更新,
备份恢复。
#######################################################
#这里我们只做了一个单条查询的效率比较
#######################################################
环境:单个台式机
ubuntu 14.04 64位,
cpu cores=2  
mem=7935M
测试步骤:
1、分别创建以id,uuid为主键的表。
2、分别插入100w条记录(编写存储过程生成测试数据,收获:需要关闭自动提交,效率大大的提升)。
3、分别以id ,uuid执行单条查询。
4、比较查询时间
最后结果都是在0秒以内完成。
脚本见附件。


#################################
DELIMITER $$


USE `test`$$


DROP PROCEDURE IF EXISTS `p_product_uuid`$$


CREATE DEFINER=`root`@`%` PROCEDURE `p_product_uuid`(IN n BIGINT)
BEGIN
  DECLARE i INT DEFAULT 1 ;
  SET autocommit = 0;
  
  WHILE
    (i <= n) DO 
    INSERT INTO tmp_id_uuid (id, UUID) 
    VALUES
      (i, UUID()) ;
    
    SET i = i + 1 ;
    
  END WHILE ;
  COMMIT;
SET autocommit = 1;
  
END$$


DELIMITER ;
#####################################
ps:在调试过程中,遇到sql一直在执行,需要停止掉,处理方式如下:
show processlist;
找出你要停止的语句
然后找出你要终止的语句的id
在系统下mysqladmin -uroot -ppassWord kill 要杀的ID
#####################################


mysql> truncate table tmp_id_uuid;
Query OK, 0 rows affected (0.14 sec)


mysql> select count(*) from tmp_id_uuid;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)


mysql> call p_product_uuid(100000);
Query OK, 0 rows affected (5.16 sec)


mysql> select count(*) from tmp_id_uuid;
+----------+
| count(*) |
+----------+
|   100000 |
+----------+
1 row in set (0.04 sec)


mysql> truncate table tmp_id_uuid;
Query OK, 0 rows affected (0.15 sec)


mysql> call p_product_uuid(1000000);
Query OK, 0 rows affected (43.03 sec)


mysql> create table tmp2_id_uuid as select * from tmp_id_uuid;
Query OK, 1000000 rows affected (18.07 sec)
Records: 1000000  Duplicates: 0  Warnings: 0


mysql> select count(*) from tmp2_id_uuid;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.31 sec)


mysql> alter table tmp_id_uuid add primary key (id);
Query OK, 0 rows affected (24.14 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> alter table tmp2_id_uuid add primary key (uuid);
Query OK, 0 rows affected (25.94 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> 
mysql> 
mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)


mysql> select * from tmp_id_uuid where id=500000;
+--------+--------------------------------------+
| id     | uuid                                 |
+--------+--------------------------------------+
| 500000 | e3332083-c743-11e6-bc1e-00e066731e45 |
+--------+--------------------------------------+
1 row in set (0.00 sec)


mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)


mysql> select * from tmp2_id_uuid where uuid='e3332083-c743-11e6-bc1e-00e066731e45';
+--------+--------------------------------------+
| id     | uuid                                 |
+--------+--------------------------------------+
| 500000 | e3332083-c743-11e6-bc1e-00e066731e45 |
+--------+--------------------------------------+
1 row in set (0.00 sec)


mysql>
mysql> 

以上是“mysql中采用uuid而不使用自增ID有什么优势”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中采用uuid而不使用自增ID有什么优势

本文链接: https://lsjlt.com/news/62791.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql中采用uuid而不使用自增ID有什么优势
    小编给大家分享一下mysql中采用uuid而不使用自增ID有什么优势,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • MySql主键id不推荐使用UUID的原因是什么
    本文小编为大家详细介绍“MySql主键id不推荐使用UUID的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySql主键id不推荐使用UUID的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • Mysql:使用on duplicate key update时导致自增id不连续怎么办?
    在执行完on duplicate key update 的语句后,会发现数据库AUTO_INCREMENT会一直增长,就算没有新增数据,只是修改数据AUTO_INCREMENT也会一直增长,导致自增id不连续。 解决方法 方法一:每次执行...
    99+
    2023-09-29
    mysql sql duplicate key 自增id不连续 AUTO_INCREMENT
  • 深入分析mysql为什么不推荐使用uuid或者雪花id作为主键
    前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,...
    99+
    2022-05-25
    mysql uuid 主键 mysql 雪花id主键
  • MySQL为什么使用B+树,而不是B树?
    在MySQL中,B+树被广泛应用于索引结构,因为它支持高效的范围查询和区间扫描,并且有助于减少磁盘I/O操作,从而提高查询效率。为什么MySQL使用B+树而不是B树?主要有以下几个原因: 1、B+树可以更好地利用磁盘预读特性 在数据库中,...
    99+
    2023-09-21
    mysql 数据库
  • 租用香港服务器增加CDN有什么优势
    租用香港服务器并增加CDN(内容分发网络)有以下优势: 改善网站速度:CDN可以帮助加速内容的传输,提高网站加载速度,减少页面加...
    99+
    2024-04-15
    香港服务器 CDN
  • 使用云服务器有什么优势
    使用云服务器的优势有:1、可扩展性高,能纵向和横向扩展内存和数据存储,实现一键安装应用程序;2、采用网络分布式集群存储,能实时备份多份数据,数据安全有保障;3、提供强大的安全支持,能有效将恶意攻击流量进行清洗过滤,确保主机的稳定可靠。具体内...
    99+
    2024-04-02
  • 使用韩国主机有什么优势
    性价比高:韩国主机价格相对较低,性价比较高,适合小型企业和个人用户使用。 稳定可靠:韩国主机提供商通常拥有先进的数据中心设备...
    99+
    2024-04-26
    韩国主机
  • 服务器使用cdn有什么优势
    使用CDN(内容分发网络)有许多优势,包括: 加速网站访问速度:CDN服务器会缓存网站的静态内容(如图片、视频、脚本文件等),使...
    99+
    2024-05-06
    服务器
  • 使用香港服务器有什么优势
    使用香港服务器有以下优势: 优越的网络连接:香港地理位置优越,连接速度快,能够提供稳定的网络连接,适用于跨国公司、跨境电商等需要跨...
    99+
    2024-04-09
    香港服务器 服务器
  • 使用韩国服务器有什么优势
    使用韩国服务器有以下几个优势: 快速的网络连接:韩国拥有先进的网络基础设施,使用韩国服务器可以获得更快的网速和更稳定的网络连接,对...
    99+
    2024-04-11
    韩国服务器 服务器
  • 使用美国VPS主机有什么优势
    使用美国VPS主机有以下优势: 稳定性:美国VPS主机提供商通常具有稳定可靠的网络和服务器基础设施,保证用户网站的稳定运行。 ...
    99+
    2024-04-19
    美国VPS vps
  • 企业使用云主机有什么优势
    灵活性:云主机可以根据企业需求快速调整配置,如增加或减少存储空间、内存或处理器。 可靠性:云主机通常具有高可用性和容错性,保...
    99+
    2024-04-28
    云主机
  • 使用台湾服务器有什么优势
    使用台湾服务器有以下几个优势: 连接速度快:台湾地理位置靠近中国大陆和东南亚地区,使用台湾服务器可以提供更快的连接速度和更稳定的网...
    99+
    2024-04-26
    台湾服务器 服务器
  • 网站使用CDN加速有什么优势
    使用CDN加速网站有以下几个优势: 提高网站访问速度:CDN可以缓存网站内容并分布在全球各地的服务器上,使用户能从距离最近的服务...
    99+
    2024-05-08
    CDN
  • 网站使用BGP协议有什么优势
    高可靠性:BGP协议能够实现网络的自动容错和路由选择,提高了网络的可靠性和稳定性。 灵活性:BGP协议支持多种路由选择算法和...
    99+
    2024-05-08
    BGP协议
  • 使用香港云主机有什么优势
    使用香港云主机有以下优势: 低延迟:由于香港地理位置靠近中国大陆地区,所以使用香港云主机可以获得较低的延迟,提升网站访问速度。 稳...
    99+
    2024-05-07
    香港云主机 云主机
  • 【MySQL】mysql中不推荐使用uuid或者雪花id作为主键的原因以及差异化对比
    文章目录 前言什么是UUID什么是雪花ID什么是MySql自增ID优缺点对比UUID:优点1.全球唯一性2.无需数据库支持 缺点1.存储空间大2.索引效率低3.查询效率低 雪花ID:优点1.分布式环...
    99+
    2023-12-22
    mysql 数据库
  • 使用BGP服务器线路有什么优势
    使用BGP服务器线路的优势有:1、使用BGP线路能够不占用任何服务器资源,可以加快用户的访问速度;2、使用BGP线路能冗余备份数据和消除环路,能够有效保障网站的稳定性;3、使用BGP线路有较好的拓展性和融合性,能够实现网站的互访互通。具体内...
    99+
    2024-04-02
  • 香港服务器使用CDN有什么优势
    香港服务器使用CDN的优势有:1、能够提高香港服务器的防御性能;2、能够促进网站内容的分发速度,提高了香港服务器网络速度;3、使用方便,给香港服务器接入CDN只需要提供域名即可。具体内容如下:1、防御性能好现在黑客攻击也学会了柿子捡软的捏,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作