MySQL支持6种不同的表类型:BDB、InnoDB、HEAP、ISAM、MERGE以及MyISAM。其中 BDB,InnoDB单独属于一类,称为“事务安全型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(non- transaction-safe)。

事务安全型

BDB

BDB全称是“Berkeley DB”,它是MySQL具有事务能力的表类型,由Sleepycat Software (http://www.sleepycat.com)开发。BDB表类型提供了MySQL用户长久期盼的功能,即事务控制能力。在任何RDBMS中,事 务控制能力都是一种极其重要和宝贵的功能。事务控制能力使得我们能够确保一组命令确实已经全部执行成功,或者确保当任何一个命令出现错误时所有命令的执行 结果均被回退。可以想象,在电子银行这类应用中事务控制能力是极其重要的。

InnoDB

InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特 性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的 INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。对于支持事物的InnoDB类 型的表,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事务(即使autocommit打 开也可以),将大大提高性能。

非事务安全型

HEAP

HEAP表是访问数据速度最快的MySQL表,这是因为这类表使用保存在内存中的散列索引。但有极其重要的一点必须注意,如果MySQL或者服务器崩溃,HEAP表中的数据将会丢失!

ISAM

ISAM表类型是MyISAM出现之前MySQL的默认表类型,所以现在这种表类型是不推荐使用的,建议改用MyISAM表。

MERGE

MERGE是一种值得关注的新式表类型,在3.23.25版中提供。MERGE表实际上由一组同样的MyISAM表合并而成。之所以要把多个同样的表合并成一个,主要是出于性能上的考虑,因为它能够提高搜索速度、提高修复效率、节省磁盘空间。

MyISAM

MyISAM表类型是MySQL默认的表类型。MyISAM表类型以ISAM为基础,MyISAM表比ISAM表要小,因而占用资源更少。但增加了许多有用的扩展。 它是存储记录和文件的标准方法.与其他存储引擎比较, MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量 的SELECT,MyISAM是更好的选择。另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝 到linux系统中使用。

注意点:

* 4.0以上mysqld都支持事务,包括非max版本。3.23的需要max版本mysqld才能支持事务。

* 创建表时如果不指定type则默认为myisam,不支持事务。可以用 show create table tablename 命令看表的类型。

* 对不支持事务的表做start/commit操作没有任何效果,在执行commit前已经提交

可以执行以下命令来切换非事务表到事务(数据不会丢失),innodb表比myisam表更安全: alter table tablename type=innodb;

* innodb表不能用repair table命令和myisamchk -r table_name但可以用check table,以及mysqlcheck [OPTIONS] database [tables]

* 启动mysql数据库的命令行中添加了以下参数可以使新发布的mysql数据表都默认为使用事务(只影响到create语句)--default-table-type=InnoDB

* 临时改变默认表类型可以用:

set table_type=InnoDB;

show variables like 'table_type';

或:

c:/mysql/bin/mysqld-max-nt --standalone --default-table-type=InnoDB

* 设置mysql用户密码应该采用如下方式(注意密码的输入方式):

update user set password=password(‘password’) where user=’root’

* 解决Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server异常

解决方法:

1、 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root –p vmware mysql>use mysql; mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION;

* 解决JPA自动建表没有生成外键的问题

解决办法:

1、可能是数据库表的默认类型不是InnoDB,所以修改数据库表的默认类型为InnoDB。

2、数据连接的dialect如下设置

mysql 表 类型_mysql表类型相关推荐

  1. mysql表类型_MySQL表类型的选择

    P131)创建表时的默认引擎是InnoDB,如果要修改默认的存储引擎,可以在参数文件中设置default-table-type.查看当前的默认存储引擎,可以使用一下命令: 创建新表的时候可以通过增加E ...

  2. mysql中表联结_MySQL -- 表联结

    创建联结:(使用WHERE联结)SELECTvend_name,prod_name,prod_priceFROMvendors,productsWHEREvendors.vend_id=product ...

  3. mysql关系表控制_mysql表关系

    一.表的详细操作 1.修改表名 alter table 旧表名 rename 新表名; ​2.修改表的引擎与字符编码 alter table 表名 engine="引擎名" ch ...

  4. mysql 回收空间_MySQL表的碎片整理和空间回收小结

    MySQL表碎片化(Table Fragmentation)的原因 关于MySQL中表碎片化(Table Fragmentation)产生的原因,简单总结一下,MySQL Engine不同,碎片化的原 ...

  5. mysql 空间 类型_MySQL空间类型测试

    Mysql空间类型介绍: MySQL支持空间扩展,允许生成.保存和分析地理特征.这些特征可用于MyISAM.InnoDB.NDB.BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此 ...

  6. MySQL笔记创建表结构_MySQL表结构笔记9

    本篇大纲 MySQL数据表 创建表 创建主键 AUTO_INCREATE 指定默认值 更新表结构 删除表,重命名表 01:表 MySQL 数据库的表是一个二维表,由一个或多个数据列构成 每个数据列都有 ...

  7. Mysql数据库---约束类型_MySQL约束类型及举例介绍

    约束 约束保证数据的完整性和一致性 约束分为表级约束和列级约束 约束类型包括:NOT NULL (非空约束),PRIMARY KEY(主键约束),UNIQUE KEY(唯一约束),DEFAULT(默认 ...

  8. mysql myisam表分区_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表 ...

  9. mysql查看表备注_mysql表中如何查看备注

    mysql表中查看备注的方法:1.通过"information_schema.TABLES"语句查看所有表的注释:2.通过"information_schema. TAB ...

最新文章

  1. 【2018年更新】Sublime text 3安装教程(Linux版本--Ubuntu)
  2. R语言实战应用-lightgbm 算法优化:不平衡二分类问题(附代码)
  3. BeautifulSoup 返回网页标签的名称、父标签名称、行号、完整路径
  4. XGBoost算法概述
  5. 面向兑现编程(四):多态
  6. win8虚拟机_VMware15虚拟机软件安装包+安装教程
  7. 句子匹配 无监督_在无监督的情况下创建可解释的句子表示形式
  8. 频域、时域的理解_通俗易懂_电子信息学习_信号系统信息处理
  9. 电脑开机蓝屏时要怎么解决修复?哪种方便比较好?
  10. tkinter canvas绘图全攻略(图形项、配置参数和案例详解)
  11. 對Googgle adsense廣告作弊和Googeladsense點擊廣告的生存前景看法
  12. 测试场景设计-测试方法论
  13. 心情随笔--我与考研战友的故事
  14. Jikes 研究虚拟机(RVM)二 JVM 的组织
  15. php sybase存储过,SYBASE存储过程详解
  16. 道德经 道可道,非常道。
  17. mysql的基础查阅
  18. c++的复制省略(copy elision)
  19. 钢琴谱coda是什么意思
  20. Proteus仿真STM32F103R6(一)

热门文章

  1. [深入学习C#]匿名函数、委托和Lambda表达式
  2. org.springframework.data.redis.serializer.SerializationException: Cannot serialize;
  3. 1002 写出这个数 (20分)-Java
  4. ACM 博弈专题(5种模板)
  5. 匈牙利算法——最大匹配问题详解
  6. fastai学习:02_production Questionnaire
  7. 腾讯移动分析+html5,FAQ · 腾讯移动分析 文档
  8. java dot画图_小O的图案 (Java代码)(最简单的解法)
  9. 电脑公司Win11 64位全新旗舰版镜像V2021.08
  10. 腾讯视频下载位置_腾讯视频怎么下视频到手机