3. 易受攻击 使用自增id作为主键会暴露大量的信息。攻击者可以通过系统的自增id,推算出表中数据的总量、时间戳等信息。如果这些信息对系统安全有影响,就不建议使用自增id了。相比之下,使用UUID或GUID作为主键则更为安全。下面我们来看看使用自增id与使用UUID或GUID作为主键在性能、可读性方面的比较:...
1、存储空间小。2、插入和查询性能高。缺点是:1、int的范围可能不够大。2、当要做数据迁移的时候,会很麻烦,主键容易冲突。3、id自增,自身的业务增长情况很容易被别人掌握。4、自增在高并发的情况下性能不好。生成id的代码是:自增和UUid差异的原因是:mysql数据库一般我们会采用支持事务的Innodb...
这可能导致数据丢失或不一致,因此建议在InnoDB表中主动创建自增主键,以避免依赖系统提供的row_id。三、设计建议 选择合适的数据类型 在设计表时,根据预期的数据量选择合适的自增id数据类型。如果数据量较大,建议使用BIGINT unsigned作为自增id的数据类型。避免依赖系统row_id 在InnoDB表中,尽量主动创...
自增列可能会成为一个性能瓶颈。当innodb_autoinc_lock_mode是0时,一个自增列会在一个插入语句执行期间被一直锁住,这样它就成为一个严重的性。
这种方法通过查询表中当前最大的ID值来获取自增ID。缺点:在并发插入的情况下,这种方法可能会导致数据竞争和不一致,因此通常不推荐使用。使用LAST_INSERT_ID函数:LAST_INSERT_ID返回的是当前连接最后一次插入操作生成的AUTO_INCREMENT值。优点:它是线程安全的,即每个连接返回的ID值是独立的,不受其他...