本文目錄一覽:
用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了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295751.html