mysql列名可以用中文吗_用了这么久的MySQL,你知道它的存储引擎吗?

2e9d2bd91e3dab26d42988a0e3f1a6de.gif

每天叫醒你的不是闹钟,而是梦想

1

MySQL数据库引擎简介

1.1 ISAM(Indexed Sequential Access Method)

         ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错。如果你的硬盘崩溃了,那么数据文件就无法恢复。所以你必须经常备份你所有的数据。

1.2 MyISAM

         MyISAM是MySQL的ISAM拓展格式数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM一个重要缺陷就是不能在表损坏后恢复数据,且不支持事务。

说明:当我们使用mysql进行delete数据,delete完以后,发现空间文件ibd并没有减少,这是因为碎片空间的存在。利用未使用的空间,释放出来,并整理数据文件的碎片。(具体可以查阅资料)

1.3 InnoDB

        InnoDB数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++API。在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理,也不支持外键。尽管要比其他两个引擎慢很多,但是InnoDB包括了事务处理和外来键的支持,这两点都是前两个引擎所没有的。是现在的MySQL(5.5以上版本)常用版本默认引擎、

2

存储引擎管理

2.1查看数据库支持的存储引擎

show engines

e36c354f2238dea3f48921ca2b5fe95e.png

从查询结果中:

  • Engine参数指存储引擎名称;

  • Support参数说明MySQL是否支持该类型引擎;

  • Comment参数表示对该引擎的评论;

  • Transaction参数则表示该引擎是否支持事务处理

  • XA参数表示是否分布式交易处理的XA规范

  • Savepoints参数表示是否支持保存点。

2.2 查看当前数据库使用的存储引擎

show variables like '%engine%'

51d2ea8e0a30104f5badcb9c9917578d.png

2.3 查看数据库表所用的引擎

show create table table_name;

f0767e460a8d02ecb51d5669d5eb1ced.png

2.4 创建表指定存储引擎

create table table_name (column_name column_type) engine = engine_name

57013f93cb6af1e24bf33db437e1d6c3.png

2.5 修改表的存储引擎

alert table table_name engine = engine_name

8a2b443a3bb7e6f5b50c5e911226cd1d.png

3

InnoDB

2.1 InnoDB特点

  • InnoDB支持事务,对于每一条SQL语言都默认封装成事务,自动提交。这样会影响速度,所以最好把多条SQL语言放在begin transaciton和commit之间,组成一个事务。

  • InnoDBz支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败。

  • InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。

  • InnoDB不保存表的具体行数,执行select count(*) from table时需全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快。

  • InnoDB不支持全文索引,而MyISAM支持,查询效率上MyISAM要高一点。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值