mysql 表 类型_mysql表类型

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如下设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java软件工程_java复习

计算机一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。计算机硬件:CPU、主板(motherboard)、内存(memory)、电源、主机箱、硬盘、显卡、键盘、鼠标、显示器等IO:input输入(鼠标键盘)、output输出(显示器音响)冯诺依曼体系结…

python偶数分解成两个素数之和_偶数 2021218918 ,有多少种方法分解成两个素数之和?...

对于上面问题2N2021218918,满足“pq2N”的素数对(p,q)的个数真值为3289208个。下面对这个值进行理论探求分析,请大家不吝赐教!下面先来进行基于小素数因子机理哥猜数分析:即对于大于2的偶数2N的小素数因子t,t∈A{≤(2N…

2008r装mysql_RMySQL安装及操作(详细版)

系统配置:Windows XP 32位R 3.1.1一、安装RMySQL:1,安装RTools并配置环境变量:我的电脑——属性——高级——环境变量,在系统变量一栏中选择PATH,点击编辑,在后面添加RTools的路径(如:D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin;D:\R…

apache 编译php mysql_apache静/动态编译在apache+php+mysql应用

【IT168 服务器学院】我想大家有不少都成功实现apachephpmysql,网上的文章也有不少,但我发现不少文章都是抄来抄去,并且没有说明白编译的方式,有的索性apache1.3的编译方法原封不动地搬过来套在apache2.0,显然误导一些…

java getparametermap_重写getParameterMap后,报错 ,

想做个参数过滤功能,如何修改,或者其他实现方式ServletExcludeHadler类在HttpServletRequestWrapper类里重写了getParameterMap现在报错java.lang.ClassCastException: org.apache.catalina.util.ParameterMap cannot be cast to java.util.HashMapat co…

java sdcard path_更改 android 文件存放目录 getWritablePath() 为sdCard

CCFileUtils::sharedFileUtils()->getWritablePath() 默认为 /data/data/prjName/"Java_org_cocos2dx_lib_Cocos2dxHelper.h" 的 std::string getFileDirectoryJNI() 方法通过 jni 调用 org.cocos2dx.lib.Cocos2dxHelper.getCocos2dxWritablePath() 获取具体&qu…

java 抽样_Java编程实现二项分布的采样或抽样实例代码

本文研究的主要是Java编程实现二项分布的采样或抽样,下面是详细实现代码。如下程序为n100,p0.9的二项分布采样,共采样10000次package function;import org.apache.commons.math3.distribution.BetaDistribution;import org.apache.commons.ma…

elasticsearch group by java_java elasticsearch聚合查询实例详解

现有索引数据:index:schooltype:student---------------------------------------------------{"grade":"1", "class":"1", "name":"xiao 1"}{"grade":"1", "class":&q…

java中什么是 伪共享_【Java】聊聊多线程中的伪共享现象

首页专栏java文章详情0聊聊多线程中的伪共享现象小强大人发布于 1 月 27 日什么是伪共享?讲伪共享之前,让我们先乘坐时光机,回到大学课堂,来重温下计算机组成原理的基础知识。我们知道,CPU和内存的运行速度相差很大&am…

java多个mapreduce_java – 在hadoop中运行多个MapReduce作业

我想运行一系列map reduce工作,所以最简单的解决方案似乎是jobcontroller.说我有两个工作,job1和job2.我想在job1之后运行job2.嗯,它遇到了一些问题.经过几个小时的调试后,我将代码缩小到以下几行:JobConf jobConf1 new JobConf();JobConf jobConf2 new JobConf()…

java用户界面项目_结对项目(带图型用户界面)Java实现【柴政-陈起廷】

对分数及整数的计算/**** 相加操作*/ADD("") {Overridepublic String calculate(String a, String b) {boolean flagA a.contains("/");boolean flagB b.contains("/");//两个都是分数if (flagA && flagB) {int[] anInt ResolveUtil.…

java securerandom使用_Java中的SecureRandom nextBytes()方法

用户指定的随机字节数可以使用nextBytes()类java.security.SecureRandom中的方法获得。该方法需要一个参数,即一个随机字节数组,它返回用户指定的随机字节。演示此的程序如下所示-示例import java.security.*;import java.util.*;public class Demo {pub…

java 跨类 调用 model_Model.java中的这两个方法,为什么不能在子类中调用,或者包内调用也行啊。...

JFinal 你好,想跟你请教个问题:Model.java中的这两个方法,为什么不能在子类中调用,或者包内调用也行啊。/*** Find model.*/SuppressWarnings("unchecked")private List find(Connection conn, String sql, Object... p…

mysql n 识别_mysql – 不能有“不识别”的N:M关系吗?

我的数据库ERM(实体关系模型)有一个TEACHER实体类型,它与SUBJECT_MODULE实体类型相关(因为每个主题中的不同模块由不同的教师讲授,对于某些模块,甚至每个模块中的不同章节都可以通过不同的教师)通过TEACH关系类型.这是一种N:M的关系,因为每个教师都可以教授许多学科…

新闻资讯java开发_新闻资讯app开发的功能与意义

获取新闻的目的因人而异,但对获取新闻的需求是一样的。现在是移动互联网的时代。人们不再想依靠传统的手段,而把便利作为获取服务的核心。因此,开发新闻咨询app是必要的。其到来不仅意味着获得新闻登上新的阶梯,还因为画出了圆满的…

JAVA中注解controller_SpringMVC之基于注解的Controller

参考博客:https://www.cnblogs.com/qq78292959/p/3760560.htmlController注解:传统风格的Controller需要实现Controller接口,而现在我们只需要用注解就行了。基于注解的控制器有几个优点,1.一个控制器可以处理多个action(动作)&am…

c java json_cJSON_json包的C语言解析库

cJSON库描述CJSON是一个用于解析JSON包的C语言库,库文件为cJSON.c和cJSON.h, 所有的实现都在这两个文件中。原作者的地址cJSON。JSON包的解析例如有一个JSON的数据包如下:{"rxpk": [{"tmst": 1868500100,"time"…

e语言mysql中文_大佬们E语言连接MYSQL输出中文乱码怎么破

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼.版本 2.支持库 mysql.支持库 iext.程序集 窗口程序集_启动窗口.子程序 _按钮1_被单击数据库连接句柄 = 连接MySql (“127.0.0.1”, “root”, “zkqingfish*”, “mu_game_1”, 3306) 执行SQL语句 (连接句柄, “set na…

java中删除最大的数,【Java练习】删除字符串中字符个数最少的字符

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼输入:asdasdas输出:asasas[java] view plain copyprint?1.package com.iotex;2.3.import java.util.ArrayList;4.import java.util.Collections;5.import java.util.Comparator;6.import java.util.HashMap…

php实时上传多张图片,PHP实现多张图片上传预览功能

PHP实现多张图片上传预览功能,支持左右移动图片切换位置、删除图片,限制图片上传的数量等-向左移动图片function reverse_left(obj) {var obj_li obj.parents("li");var obj_prev obj_li.prev("li");if (obj_prev.hasClass("…