MySQL 快速获取ID方案(mysql 获取 id)
MySQL 快速获取ID是数据库获取指定起始ID的编号序列的一种算法,它的优势在于快速响应、低内存占用,被大量的业务系统采用。比如用于订单号、UUID 等等场景。
我们知道,通常MySQL使用自增列作为ID,可以满足应用系统响应速度和性能要求。但是自增列也存在一定的局限性,比如若自增ID暴露给终端使用,ID 随时会猜测,有可能破解应用系统,导致数据安全问题;若跨库键值重复时,恢复跨库数据会比较复杂。
所以,为了解决这些问题,最好的方案就是MySQL 快速获取ID。在这种方案中,我们可以让MySQL自己维护ID,而不再使用自增ID列。它在数据库中存储一个全局步骤变量,以此来生成全局唯一的ID。
下面,我们对MySQL 快速获取ID的算法做一个简单的介绍:
首先,我们可以在数据库中为ID设置一个默认值:
“`sql
CREATE TABLE `idTable` (
`id` int(10) unsigned NOT NULL DEFAULT ‘1’,
KEY id (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
接下来定义一个存储过程来获取ID:
```sqlCREATE PROCEDURE `getIdNum`()
BEGIN DECLARE result INT UNSIGNED;
SELECT `id` INTO result FROM `idTable`; UPDATE `idTable` SET `id`=`id`+1;
SELECT result; END;
最后,我们可以使用此存储过程来获取ID:
“`sql
CALL getIdNum();
通过这样一个简单的MySQL 快速获取ID方案,我们可以快速获取指定起始ID的编号序列,进而达到安全性要求,满足我们的应用需求。