InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同

1. InnoDB引擎的auto_increment字段必须是索引。如果是组合索引,必须为组合索引的第一列。

create table autoincrement_demo_inno(
    id1 int not null auto_increment,
    id2 int not null,
    name varchar(10),
    index(id1, id2)
) engine=InnoDB

此处必须是index(id1, id2),如果id1不放在第一位则会出错。只要插入新列auto_increment字段就会自增。

从上面可以看出,插入多少列id1就自增多少。

2. MyISAM引擎的auto_increment字段也必须是索引,但如果是组合索引,可以不是组合索引的第一列。

create table autoincrement_demo_myisam(
    id1 int not null auto_increment,
    id2 int not null,
    name varchar(10),
    index(id2, id1)
) engine=MyISAM

此处如果跟上面一样写成index(id1, id2),auto_increment的效果就跟上面一样。如果把id2放在前面,auto_increment字段的自增会在id2列内容相同的情况下进行。

从上面可以看出,id1的自增在id2相同的情况下才会进行。如果是index有多列,则看排在auto_increment字段前的字段是否相同进行自增。

时间: 2025-01-11 18:49:48

InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同的相关文章

(转)InnoDB与MyISAM引擎区别

MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比 2015年06月25日 21:58:42 阅读数:1827更多 个人分类: mysql 1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合. 2.InnoDB:支持事务安全的引擎,支持外键.行

MyISAM引擎和InnoDB引擎的特点

随着MySQL的不断更新,MySQL常用的两大存储引擎的MyISAM和InnoDB也在不断的变化着,下面总结下这两大存储引擎的特点,朋友们可以根据业务需求,选择合适的存储引擎.^.^ MyISAM引擎的特点: 1.堆组织表: 2.不支持事务: 3.数据文件和索引文件分开存储: 4.支持全文索引: 5.主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属性,其他普通索引没有唯一属性.B+树叶子节点存储的都是指向行记录的row pointer): 6.有特殊计数

MYSQL MYISAM引擎与INNODB引引擎的区别

MYISAM和INNODB是MYSQL数据库的两个主要引擎,MYISAM是MYSQL5.5版本之前的默认的引擎,而INNODB是MYSQL 5.5版本默认引擎. 两个引擎的区别如下: 事务处理 INNODB支持事务处理功能,事务具有以下4个属性,通常简称为事务的ACID属性. 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行. 一致性(Consisten):在事务开始和完成时,数据都必须保持一致状态.这意味着所有相关的数据规则都必须应用于事务的修

MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解

MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制.比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁. Mysql3中锁特性如下: 表级锁:开销小,加锁块:不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发性也最高. 页面锁:开销和加锁界于表锁和行锁之间,会出现死锁:锁定粒度界与表锁和行锁

B-Tree 和 B+Tree 结构及应用,InnoDB 引擎, MyISAM 引擎

1.什么是B-Tree 和 B+Tree,他们是做什么用的? B-Tree是为了磁盘或其它存储设备而设计的一种多叉平衡查找树,B-Tree 和 B+Tree 广泛应用于文件存储系统以及数据库系统中. 在大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,树的高度就会增大,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下(为什么会出现这种情况?这跟外部存储器-磁盘的存储方

MySQL基于MyISAM引擎和InnoDB引擎性能测试对比

在MySQL中数据表,使用MyISAM引擎快一些,存储空间小一些:使用InnoDB引擎插入速度稍快,关键是能支持事务. 实际应用中使用MyISAM还是InnoDB好呢?得具体问题具体分析,由你的系统特性决定, 如使用MyISAM,得到性能提升,但将失去了对事务的支持,到底值不值呢,还得充分了解两种方式的优劣程度, 下面是我的一次测试结果: MyISAM 数据量 数据占空间(byte) 索引占空间(byte) 基于索引查询(s) 无索引查询(s) coun(*)查询(s) 插入100万记录(s)

Innodb与Myisam引擎的区别与应用场景

转自:https://www.cnblogs.com/changna1314/p/6878900.html 1. 区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是行级锁: (3)select ,update ,insert ,delete 操作: MyISAM:如果执行大量的SELECT,MyISAM是更好的选择 InnoDB:如果你的数据执行大量的INSERT或UPDAT

InnoDB,MyISAM引擎对比

在数据规模较大(100万条以上),引擎性能有相对优势. 在数据规模较小(10万条以下),MyISAM引擎性能有相对优势. http://www.cnblogs.com/szx_rencaijob/archive/2010/04/28/1723211.html

mysql 5.6 myisam 引擎表损坏

告警日志发现报错 2016-12-05 13:01:23 27830 [ERROR] /usr/sbin/mysqld: Table './user/t_customer' is marked as crashed and should be repaired 2016-12-05 13:01:23 27830 [ERROR] /usr/sbin/mysqld: Table './user/t_customer' is marked as crashed and should be repair