在PowerDesigner中怎么修改mysql数据库引擎类型

在PowerDesigner中怎么修改mysql数据库引擎类型,第1张

CREATE TABLE 表名 ( 字段…… ) ENGINE=InnoDB 就可以了啊 如果还不行,就直接到MySQL目录里的myini文件中把default-storage-engine这一行改过来,把默认的存储引擎改为InnoDB,重启数据库服务器就行了。

mysql 55以前默认的引擎是myisam,55以后是innodb,引擎可以在创建表的时候指定,如下:

Ceate table test

(id int,name varchar(10))

engine innodb;

修改:

alter table test type=innodb;

如果想设置缺省引擎可以在配置文件的mysqld添加一行:

default-storage-engine=INNODB;

1、使用show语句找出在服务器上当前存在什么数据库:

mysql>

show

databases;

+----------+

|

database

|

+----------+

|

mysql

|

|

test

|

+----------+

3

rows

in

set

(000

sec)

2、创建一个数据库abccs

mysql>

create

database

abccs;

注意不同 *** 作系统对大小写的敏感。

3、选择你所创建的数据库

mysql>

use

abccs

database

changed

此时你已经进入你刚才所建立的数据库abccs

4、

创建一个数据库表

首先看现在你的数据库中存在什么表:

mysql>

show

tables;

empty

set

(000

sec)

说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:

我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

mysql>

create

table

mytable

(name

varchar(20),

sex

char(1),

->

birth

date,

birthaddr

varchar(20));

query

ok,

0

rows

affected

(000

sec)

由于name、birthadd的列值是变化的,因此选择varchar,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用alter

table语句。);性别只需一个字符就可以表示:"m"或"f",因此选用char(1);birth列则使用date数据类型。

创建了一个表后,我们可以看看刚才做的结果,用show

tables显示数据库中有哪些表:

mysql>

show

tables;

+---------------------+

|

tables

in

menagerie

|

+---------------------+

|

mytables

|

+---------------------+

5、显示表的结构:

mysql>

describe

mytable;

+-------------+-------------+------+-----+---------+-------+

|

field

|

type

|

null

|

key

|

default

|

extra

|

+-------------+-------------+------+-----+---------+-------+

|

name

|

varchar(20)

|

yes

|

|

null

|

|

|

sex

|

char(1)

|

yes

|

|

null

|

|

|

birth

|

date

|

yes

|

|

null

|

|

|

deathaddr

|

varchar(20)

|

yes

|

|

null

|

|

+-------------+-------------+------+-----+---------+-------+

4

rows

in

set

(000

sec)

6、

往表中加入记录

我们先用select命令来查看表中的数据:

mysql>

select

from

mytable;

empty

set

(000

sec)

这说明刚才创建的表还没有记录。

加入一条新记录:

mysql>

insert

into

mytable

->

values

(′abccs′,′f′,′1977-07-07′,′china′);

query

ok,

1

row

affected

(005

sec)

再用上面的select命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。

MyISAM、InnoDB、Heap(Memory)、NDB

貌似一般都是使用 InnoDB的,

mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

最常使用的2种存储引擎:

1Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。

不分开,因为InnoDB表数据文件本身就是主索引,MyISAM引擎是分开的。

MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。

而InnoDB是聚集索引,就是索引文件节点中就包含了完整的数据记录。

修改MySQL数据库引擎步骤如下

第一:修改myini,在[mysqld]下加上:

default-storage-engine=引擎名称

其中的等号后面是要指定的数据库引擎名称。

第二:用sql语句修改已经建成表的引擎:

alter table tableName type=InnoDB --type语法在4X版本下存在

alter table tableName ENGINE=InnoDB --5X下都改成engine=innodb

举例说明下面贴出我的myini文件供参考:

[mysqld] basedir=C:\Program Files\VertrigoServ\Mysql\ datadir=C:\Program Files\VertrigoServ\Mysql\data\ port =3306 key_buffer =64M max_allowed_packet =1M table_cache =128 sort_buffer_size =512K net_buffer_length =8K read_buffer_size =256K read_rnd_buffer_size =512K myisam_sort_buffer_size =68M default-storage-engine=INNODB [mysqldump] quick max_allowed_packet =116M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer =20M sort_buffer_size =20M read_buffer =62M write_buffer =62M [myisamchk] key_buffer =20M sort_buffer_size =20M read_buffer =62M write_buffer =62M [mysqlhotcopy] interactive-timeout

按照以上的代码提示 *** 作,我们就能够成功地修改MySQL数据库引擎为INNODB了。

MyISAM、InnoDB、Heap(Memory)、NDB

貌似一般都是使用 InnoDB的,

mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

最常使用的2种存储引擎:

1Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。

2InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

题目:请阐述Mysql Innodb引擎的4个隔离级别

难度:三星

面试频率:五星

这道题真的是一道数据库的高频题,数据库题除了索引的原理之外就是这道题的面试频率最高。

1Read uncommitted(读未提交):,最低的隔离级别,可以一个事务读到其他事务没有提交的数据,也称脏读,这个隔离级别很少人用

2Read committed(读已提交):相比于读未提交,这个隔离级别只能读到其他事物已经提交了的数据,这个隔离级别用得比较多。但是不是Mysql默认的隔离级别

3Repeatable read(可重复读): 在读已提交隔离级别中,2次读取同一个变量如果其他事务修改了它的值,会读到的不一样。而在这个隔离级别中,顾名思义,一个事务开始读了。多次读到的值可以保证是一样的

4Serializable 序列化 在这个隔离级别下,所有的事务都将串行 *** 作,是隔离级别最高的也是效率最低的,很少人用

面试官追问:Innodb引擎默认隔离级别是哪个

答:可重复读

面试官追问:可重复读的实现原理

答:使用了MVCC多版本控制(类似乐观锁),Innodb引擎会给每一行数据加一个版本号信息,当一个事务修改一个数据时会增加它的版本号+1,当一个事务开始的时候会缓存下此时的版本号,后面读取的时候只会读取这个版本号的数据,因此别的事务提交了修改数据的版本号大于它,因此不会被读到

面试官追问:事务的隔离级别如何设置:

答:在Mysql命令行下调用命令 set globaltx_isolation,但这样Mysql重启失效,修改mycnf来永久设置

面试官追问:可重读读有什么问题

答:会出现幻读,幻读是指事务读取到一个值无法准确继续后续 *** 作。例如读取一个值,没有则插入,但是等插入的时候其他事务已经插入了,这就会导致插入失败,解决办法:sql语句显示加锁 :select xxxx for update,其他事务修改数据则会阻塞

以上就是关于在PowerDesigner中怎么修改mysql数据库引擎类型全部的内容,包括:在PowerDesigner中怎么修改mysql数据库引擎类型、如何为mysql数据库添加新的存储引擎、用mysql数据库,怎么选择引擎等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9439387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存