CREATE TABLE 表名
我們是公司2013年成立的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計開發(fā),外貿(mào)營銷網(wǎng)站建設(shè),響應(yīng)式網(wǎng)頁設(shè)計,小程序制作、等服務(wù)。為客戶創(chuàng)造有價值的品牌營銷體驗,讓互聯(lián)網(wǎng)提升企業(yè)的競爭力!
(
字段……
) ENGINE=InnoDB
就可以了啊
如果還不行,就直接到MySQL目錄里的my.ini文件中把default-storage-engine這一行改過來,把默認(rèn)的存儲引擎改為InnoDB,重啟數(shù)據(jù)庫服務(wù)器就行了。
大部分情況下,InnoDB都是正確的選擇,可以簡單地歸納為一句話“除非需要用到某些InnoDB不具備的特性,并且沒有其他辦法可以替代,否則都應(yīng)該優(yōu)先選擇InnoDB引擎”。
除非萬不得已,否則建議不要混合使用多種存儲引擎,否則可能帶來一系列負(fù)責(zé)的問題,以及一些潛在的bug和邊界問題。
如果應(yīng)用需要不同的存儲引擎,請先考慮以下幾個因素:
事務(wù):
如果應(yīng)用需要事務(wù)支持,那么InnoDB(或者XtraDB)是目前最穩(wěn)定并且經(jīng)過驗證的選擇。
備份:
如果可以定期地關(guān)閉服務(wù)器來執(zhí)行備份,那么備份的因素可以忽略。反之,如果需要在線熱備份,那么選擇InnoDB就是基本的要求。
崩潰恢復(fù)
MyISAM崩潰后發(fā)生損壞的概率比InnoDB要高很多,而且恢復(fù)速度也要慢。
特有的特性
如果一個存儲引擎擁有一些關(guān)鍵的特性,同時卻又缺乏一些必要的特性,那么有時候不得不做折中的考慮,或者在架構(gòu)設(shè)計上做一些取舍。
有些查詢SQL在不同的引擎上表現(xiàn)不同。比較典型的是:
SELECT COUNT(*) FROM table;
對于MyISAM確實會很快,但其他的可能都不行。
◆ MyISAM:默認(rèn)的MySQL插件式存儲引擎,它是在Web、數(shù)據(jù)倉儲和其他應(yīng)用環(huán)境下最常使用的存儲引擎之一。注意,通過更改STORAGE_ENGINE配置變量,能夠方便地更改MySQL服務(wù)器的默認(rèn)存儲引擎。
◆ InnoDB:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持。
◆ BDB:可替代InnoDB的事務(wù)引擎,支持COMMIT、ROLLBACK和其他事務(wù)特性。
◆ Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問。
◆ Merge:允許MySQL DBA或開發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們。對于諸如數(shù)據(jù)倉儲等VLDB環(huán)境十分適合。
◆ Archive:為大量很少引用的歷史、歸檔、或安全審計信息的存儲和檢索提供了完美的解決方案。
◆ Federated:能夠?qū)⒍鄠€分離的MySQL服務(wù)器鏈接起來,從多個物理服務(wù)器創(chuàng)建一個邏輯數(shù)據(jù)庫。十分適合于分布式環(huán)境或數(shù)據(jù)集市環(huán)境。
◆ Cluster/NDB:MySQL的簇式數(shù)據(jù)庫引擎,尤其適合于具有高性能查找要求的應(yīng)用程序,這類查找需求還要求具有最高的正常工作時間和可用性。
◆ Other:其他存儲引擎包括CSV(引用由逗號隔開的用作數(shù)據(jù)庫表的文件),Blackhole(用于臨時禁止對數(shù)據(jù)庫的應(yīng)用程序輸入),以及Example引擎(可為快速創(chuàng)建定制的插件式存儲引擎提供幫助)。
1、使用show語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql
show
databases;
+----------+
|
database
|
+----------+
|
mysql
|
|
test
|
+----------+
3
rows
in
set
(0.00
sec)
2、創(chuàng)建一個數(shù)據(jù)庫abccs
mysql
create
database
abccs;
注意不同操作系統(tǒng)對大小寫的敏感。
3、選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql
use
abccs
database
changed
此時你已經(jīng)進(jìn)入你剛才所建立的數(shù)據(jù)庫abccs.
4、
創(chuàng)建一個數(shù)據(jù)庫表
首先看現(xiàn)在你的數(shù)據(jù)庫中存在什么表:
mysql
show
tables;
empty
set
(0.00
sec)
說明剛才建立的數(shù)據(jù)庫中還沒有數(shù)據(jù)庫表。下面來創(chuàng)建一個數(shù)據(jù)庫表mytable:
我們要建立一個你公司員工的生日表,表的內(nèi)容包含員工姓名、性別、出生日期、出生城市。
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??梢赃x擇從1到255的任何長度,如果以后需要改變它的字長,可以使用alter
table語句。);性別只需一個字符就可以表示:"m"或"f",因此選用char(1);birth列則使用date數(shù)據(jù)類型。
創(chuàng)建了一個表后,我們可以看看剛才做的結(jié)果,用show
tables顯示數(shù)據(jù)庫中有哪些表:
mysql
show
tables;
+---------------------+
|
tables
in
menagerie
|
+---------------------+
|
mytables
|
+---------------------+
5、顯示表的結(jié)構(gòu):
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命令來查看表中的數(shù)據(jù):
mysql
select
*
from
mytable;
empty
set
(0.00
sec)
這說明剛才創(chuàng)建的表還沒有記錄。
加入一條新記錄:
mysql
insert
into
mytable
-
values
(′abccs′,′f′,′1977-07-07′,′china′);
query
ok,
1
row
affected
(0.05
sec)
再用上面的select命令看看發(fā)生了什么變化。我們可以按此方法一條一條地將所有員工的記錄加入到表中。
MyISAM:默認(rèn)的MySQL 插件式存儲引擎。如果應(yīng)用是以讀操作和插入操作為主,
只有很少的更新和刪除操作,并且對事務(wù)的完整性、并發(fā)性要求不是很高,那么選擇這個存
儲引擎是非常適合的。MyISAM 是在Web、數(shù)據(jù)倉儲和其他應(yīng)用環(huán)境下最常使用的存儲引擎
之一。
. InnoDB:用于事務(wù)處理應(yīng)用程序,支持外鍵。如果應(yīng)用對事務(wù)的完整性有比較高的
要求,在并發(fā)條件下要求數(shù)據(jù)的一致性,數(shù)據(jù)操作除了插入和查詢以外,還包括很多的更新、
刪除操作,那么InnoDB 存儲引擎應(yīng)該是比較合適的選擇。InnoDB 存儲引擎除了有效地降低
由于刪除和更新導(dǎo)致的鎖定,還可以確保事務(wù)的完整提交(Commit)和回滾(Rollback),
對于類似計費系統(tǒng)或者財務(wù)系統(tǒng)等對數(shù)據(jù)準(zhǔn)確性要求比較高的系統(tǒng),InnoDB 都是合適的選
擇。
MEMORY:將所有數(shù)據(jù)保存在RAM 中,在需要快速定位記錄和其他類似數(shù)據(jù)的環(huán)境
下,可提供極快的訪問。MEMORY 的缺陷是對表的大小有限制,太大的表無法CACHE 在內(nèi)
存中,其次是要確保表的數(shù)據(jù)可以恢復(fù),數(shù)據(jù)庫異常終止后表中的數(shù)據(jù)是可以恢復(fù)的。
MEMORY 表通常用于更新不太頻繁的小表,用以快速得到訪問結(jié)果。
. MERGE:用于將一系列等同的MyISAM 表以邏輯方式組合在一起,并作為一個對象
引用它們。MERGE 表的優(yōu)點在于可以突破對單個MyISAM 表大小的限制,并且通過將不同
的表分布在多個磁盤上,可以有效地改善MERGE 表的訪問效率。這對于諸如數(shù)據(jù)倉儲等VLDB
環(huán)境十分適合。