本文目录一览:
用mysql数据库,怎么选择引擎?
1、使用show语句找出在服务器上当前存在什么数据库:
mysql
show
databases;
+----------+
|
database
|
+----------+
|
mysql
|
|
test
|
+----------+
3
rows
in
set
(0.00
sec)
2、创建一个数据库abccs
mysql
create
database
abccs;
注意不同操作系统对大小写的敏感。
3、选择你所创建的数据库
mysql
use
abccs
database
changed
此时你已经进入你刚才所建立的数据库abccs.
4、
创建一个数据库表
首先看现在你的数据库中存在什么表:
mysql
show
tables;
empty
set
(0.00
sec)
说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:
我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
mysql
create
table
mytable
(name
varchar(20),
sex
char(1),
-
birth
date,
birthaddr
varchar(20));
query
ok,
rows
affected
(0.00
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
(0.00
sec)
6、
往表中加入记录
我们先用select命令来查看表中的数据:
mysql
select
*
from
mytable;
empty
set
(0.00
sec)
这说明刚才创建的表还没有记录。
加入一条新记录:
mysql
insert
into
mytable
-
values
(′abccs′,′f′,′1977-07-07′,′china′);
query
ok,
1
row
affected
(0.05
sec)
再用上面的select命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。
如何选择合适的MySQL存储引擎
MyISAM:默认的MySQL 插件式存储引擎。如果应用是以读操作和插入操作为主,
只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存
储引擎是非常适合的。MyISAM 是在Web、数据仓储和其他应用环境下最常使用的存储引擎
之一。
. InnoDB:用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的
要求,在并发条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新、
删除操作,那么InnoDB 存储引擎应该是比较合适的选择。InnoDB 存储引擎除了有效地降低
由于删除和更新导致的锁定,还可以确保事务的完整提交(Commit)和回滚(Rollback),
对于类似计费系统或者财务系统等对数据准确性要求比较高的系统,InnoDB 都是合适的选
择。
MEMORY:将所有数据保存在RAM 中,在需要快速定位记录和其他类似数据的环境
下,可提供极快的访问。MEMORY 的缺陷是对表的大小有限制,太大的表无法CACHE 在内
存中,其次是要确保表的数据可以恢复,数据库异常终止后表中的数据是可以恢复的。
MEMORY 表通常用于更新不太频繁的小表,用以快速得到访问结果。
. MERGE:用于将一系列等同的MyISAM 表以逻辑方式组合在一起,并作为一个对象
引用它们。MERGE 表的优点在于可以突破对单个MyISAM 表大小的限制,并且通过将不同
的表分布在多个磁盘上,可以有效地改善MERGE 表的访问效率。这对于诸如数据仓储等VLDB
环境十分适合。
mysql5.5怎么修改数据库引擎
更改方式1:修改配置文件my.ini
将my-small.ini另存为my.ini,在[mysqld]最后添加为上default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为InnoDB
更改方式2:在建表的时候指定或者建完表修改
Mysql代码 收藏代码
--建表的时候指定
create table mytbl(
id int primary key,
name varchar(50)
)type=MyISAM;
--建完表后修改
alter table mytbl2 type = InnoDB;
--查看修改结果(mytest为表所在的database名字)
show table status from mytest;
如何选择MySQL存储引擎
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:
MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:
· MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。
· MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。
注释:MEMORY存储引擎正式地被确定为HEAP引擎。
· InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所 有MySQL 5.1二进制分发版里,你可以按照喜好通过配置MySQL来允许或禁止任一引擎。
· EXAMPLE存储引擎是一个“存根”引擎,它不做什么。你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在 MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。
· NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中,我们想要添加其它平台对这个引擎的支持,包括Windows。
· ARCHIVE存储引擎被用来无索引地,非常小地覆盖存储的大量数据。
· CSV存储引擎把数据以逗号分隔的格式存储在文本文件中。
· BLACKHOLE存储引擎接受但不存储数据,并且检索总是返回一个空集。
· FEDERATED存储引擎把数据存在远程数据库中。在MySQL 5.1中,它只和MySQL一起工作,使用MySQL C Client API。在未来的分发版中,我们想要让它使用其它驱动器或客户端连接方法连接到另外的数据源。
比较常用的是MyISAM和InnoBD
如何更改mysql数据库引擎
修改MySQL数据库引擎步骤如下
第一:修改my.ini,在[mysqld]下加上:
default-storage-engine=引擎名称
其中的等号后面是要指定的数据库引擎名称。
第二:用sql语句修改已经建成表的引擎:
alter
table
tableName
type=InnoDB
--type语法在4.X版本下存在
alter
table
tableName
ENGINE=InnoDB
--5.X下都改成engine=innodb
举例说明下面贴出我的my.ini文件供参考:
[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了。