首页 > 数据库 >MySQL表类型和存储引擎

MySQL表类型和存储引擎

时间:2023-06-19 13:07:05浏览次数:53  
标签:insert 存储 -- tt 事务 引擎 MySQL into


基本介绍

  • MySQL的表类型由存储引擎决定,主要包括MyISAM、innoDB、Memory等
  • MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAM、MYISAM、InnoDB
  • 这六种又分为两类,一类是“事务安全型”,比如:InnoDB;其余都属于第二类,称为“非事务安全型”

细节说明

  • MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求
  • InnoDB提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
  • MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对于一个磁盘文件。MEMORY类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用HASH索引,一旦服务关闭,表中数据就会丢失,表的结构还在。
# 储存引擎

-- 查看所有储存引擎
show engines
-- innodb 支持事务、支持外键、支持行级锁

-- myisam
create table t(id int, `name` varchar(32)) engine myisam;

start transaction --开启事务
savepoint t1 -- 设置回滚点
insert into t values(1,'javk'); --插入数据
rollback to t1 --回滚失败,warning

-- memory
create table tt(in int,`name`	varchar(32)) engine memory;

insert into tt values (1,'xc1');
insert into tt values (2,'xc2');
insert into tt values (3,'xc3');
-- 服务关闭后数据不存在

标签:insert,存储,--,tt,事务,引擎,MySQL,into
From: https://blog.51cto.com/u_16123065/6512427

相关文章

  • MySQL时间函数的选择
    Oracle中获取系统当前的时间,可以用sysdate、systimestamp等函数,在MySQL中,同样有类似的函数可以使用,碰巧看到eygle大神最近的文章,短短几行文字,就介绍了MySQL中获取系统当前时间的来龙去脉。在MySQL中,获得系统当前时间可以使用now()函数,这是最简单和应用最广的函数。除此之外,curre......
  • 初探MySQL-小白的Linux安装笔记
    这篇文章是我们组内一位小伙伴垒的文字,亲测每个步骤,真实、可靠、接地气,照着做就能入门Linux下的MySQL安装,欢迎更多的小伙伴能将日常工作中的经验记录下来,分享给其他人,正所谓“独乐乐不如众乐乐”。最近接到一个任务,由于开发环境变化,需要将旧机器上的mysql迁移到新机器上去,其中涉及......
  • 小白学习MySQL - 闲聊聊
    众所周知,在DB-Engines的排行榜,一直占据前两位的数据库,就是Oracle和MySQL,Oracle作为关系型数据库的老大,在这个生态圈中,占据着绝对优势,MySQL作为一款面向“开源"的软件,虽然被Oracle曲线收购,相比之下,还是存在着“开源”的血统,而且有很多分支,无论是国外的MariaDB,还是国内的AliSQL,都在发......
  • 小白学习MySQL - MySQL会不会受到“高水位”的影响?
    前两天碰到了一个问题,MySQL的一张表,1220万数据量,需要删除1200万数据,仅存储20万数据,讨论了三种方案,1.00:00直接执行truncate,只存储新数据。2.将1220万中的20万采用CTAS存到一张中间表,再通过rename改这两张表的名称,实现替换操作。3.delete删除1200万数据。经过综合考虑,用的方案3,方......
  • php解决 mysql_connect(): The mysql extension is deprecated and will be removed i
    Themysqlextensionisdeprecatedandwillberemovedinthefuture:usemysq翻译:mysql_connect这个模块将在未来弃用,请你使用mysqli或者PDO来替代。解决方法:打开php.ini配置文件把display_errors=On改为display_errors=Off改完之后重启服务就可以了。  ......
  • python之mysql登录验证
    fromdotenvimportload_dotenvimportpymysqlimportosload_dotenv()connection=pymysql.connect(host=os.getenv("HOST"),database=os.getenv("DATABASE"),user=os.getenv("USERNAME"),password=os.getenv("PASSWORD......
  • MySQL中SQL语句的执行顺序(详细)
    一:SQL语句的执行顺序作为一个开发人员,在开发中基本上每时每刻都要和数据库打交到;虽然写过无数的SQL语句,但是写好一个SQL可不是这么简单的,它涉及到各式各样的优化和书写方式;但下面我以MySQL中的SQL执行顺序来作为讲解,对其进行剖析。1:SQL数据的准备为了可以为下文做铺垫,......
  • 介绍一个MySQL参数检索工具
    碰巧看到徐老师的这篇文章《MySQL的参数工具》,其中介绍了一个讲解MySQL不同版本参数的小工具,网站的作者是MySQL日本用户组的负责人Tomita。该网站能够提供不同版本MySQL的参数,包括不同版本之间的对比。当用户需要对MySQL进行升级、需要确认不同版本间的具体参数差异时,就可以用到这......
  • MySQL数据字典提示1146不存在的问题解决
    最近某套MySQL因为磁盘挂载问题,异常宕机,拉起后,数据库能正常访问了,但是在error.log一直提示这个错误,[ERROR]InnoDB:Table`mysql`.`innodb_table_stats`notfound.2021-09-03T08:26:52.446564Z2[ERROR]InnoDB:Fetchofpersistentstatisticsrequestedfortable`jira`.`c......
  • 小白学习MySQL - 随机插入测试数据的工具
    我们日常做一些MySQL测试的时候,经常要造数据,通常就写个循环插入数据的存储过程。前两天碰巧看文章说,mysql_random_data_load程序能向MySQL随机插入大量数据,于是了解一下。mysql_random_data_load是个开源的项目,github路径如下,https://github.com/Percona-Lab/mysql_random_data_loa......