查看某個(gè)表的建表語(yǔ)句,可以使用phpmyadmin查看,首先選擇這個(gè)表所在的數(shù)據(jù)庫(kù)。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、呼中ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的呼中網(wǎng)站制作公司
比如:ecshop庫(kù),里面有個(gè)ecs_goods表,那么查看goods表的建表語(yǔ)句為:
show create table ecs_goods
把這條sql語(yǔ)句復(fù)制到
把顯示的結(jié)果復(fù)制到其它機(jī)器上運(yùn)行,就建好一張goods表了。
MySQL 是一個(gè)關(guān)系型數(shù)據(jù)庫(kù),由瑞典?MySQL AB 公司開(kāi)發(fā),目前屬于?Oracle?旗下公司。MySQL 最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL 所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策(本詞條"授權(quán)政策"),它分為社區(qū)版和商業(yè)版,由于其體積小,速度快,總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配?PHP,Linux和?Apache?可組成良好的開(kāi)發(fā)環(huán)境,經(jīng)過(guò)多年的web技術(shù)發(fā)展,在業(yè)內(nèi)被廣泛使用的一種web服務(wù)器解決方案之一,稱之為L(zhǎng)AMP。
列出表(列)結(jié)構(gòu):
mysql DESCRIBE tableName;
mysql DESCRIBE tableName columnName;
mysql DESC tableName;
mysql SHOW COLUMNS FROM tableName;
% mysqlshow dbName tableName!
屬于數(shù)據(jù)庫(kù)層。
MySQL支持DML(數(shù)據(jù)操作語(yǔ)言)、DDL(數(shù)據(jù)定義語(yǔ)言)、存儲(chǔ)過(guò)程、視圖、觸發(fā)器、自定義函數(shù)等多種SQL語(yǔ)言接口。
實(shí)際測(cè)試中add primary key 和修改字段類型是需要copy tmp table的并且阻塞dml操作,另外在5.6.17版本之前時(shí)候用alter table table_name engine=innodb 是需要 copy table的并且也阻塞dml。
本來(lái)打算翻譯成中文,后來(lái)發(fā)現(xiàn)這些英文實(shí)在是太簡(jiǎn)單了,就直接貼出來(lái)吧。
請(qǐng)看下圖:
1、 mysql安裝好后,在mysql的安裝目錄中有個(gè)bin目錄,里面有很多客戶端軟件,如果是mysql的客戶端,找到mysql.exe,這個(gè)是用于操作數(shù)據(jù)庫(kù)的系統(tǒng)客戶端軟件。
2、 客戶端選擇:一般情況下,我們?cè)趯W(xué)習(xí)的時(shí)候會(huì)通過(guò)使用Windows下的控制臺(tái)進(jìn)行訪問(wèn),即win + R 同時(shí)按住打開(kāi)運(yùn)行,輸入cmd命令進(jìn)入控制臺(tái),然后進(jìn)入到mysql的bin目錄(具體可以看一下Windows下控制器切換路徑(百度經(jīng)驗(yàn)));或者在開(kāi)發(fā)的時(shí)候通常會(huì)使用一些集成工具,如Navicat之類。
3、 數(shù)據(jù)庫(kù)操作步驟:學(xué)習(xí)的時(shí)候客戶端和服務(wù)端是同時(shí)安裝的,都在一臺(tái)電腦上,但是要理解,mysql的客戶端和服務(wù)端通常不會(huì)在一臺(tái)機(jī)器上的(服務(wù)器在機(jī)房,客戶端就在個(gè)人電腦上),因此是需要進(jìn)行一些步驟操作的。(下面以windows下的控制臺(tái)為例)
① 連接認(rèn)證:mysql/mysql.exe -h主機(jī)地址 -P端口 -u用戶名 -p密碼,其中h可以是ip地址也可以是主機(jī)名如-hlocalhost/-h127.0.0.1,本地可以省略;-P(大寫(xiě)P)是端口,一般mysql是3306,默認(rèn)可以省略;-u是用戶名,如果沒(méi)有匿名賬號(hào),必填;-p(小寫(xiě)p)是密碼,一般必填,最好是輸入-p后先回車,后輸入密碼(密文輸入密碼,更安全)
② 發(fā)送SQL指令,SQL(【百科】結(jié)構(gòu)化查詢語(yǔ)言Structured Query Language結(jié)構(gòu)化查詢語(yǔ)言)是mysql能識(shí)別的操作指令,這塊如果想深入學(xué)習(xí)理解可以參照MySQL的API文檔或者參考黑馬程序員下的6天玩轉(zhuǎn)MySQL,一般情況下分為幾大類:
DDL:Data Definition Language,數(shù)據(jù)定義語(yǔ)言,定義結(jié)構(gòu)。如創(chuàng)建數(shù)據(jù)庫(kù):create database `test` charset utf8;
DML:Data Manipulation Language,數(shù)據(jù)操作語(yǔ)言,進(jìn)行數(shù)據(jù)操作。如增刪改查指令:insert into table values()/delete from table where condition/update table set key = value/select * from table
DCL:Data Controller Language,數(shù)據(jù)控制語(yǔ)言,進(jìn)行權(quán)限管理。如給用戶授權(quán):grant seletet on *.* to 'root'@localhost
③ 解析:一般情況下客戶端會(huì)自動(dòng)解析MySQL服務(wù)器執(zhí)行返回的結(jié)果不需要我們進(jìn)行額外操作,但是如果是其他編程語(yǔ)言需要使用MySQL執(zhí)行的結(jié)果,那么還需要額外的解析(參照黑馬程序員6天玩轉(zhuǎn)MySQL中的PHP操作mysql)
④ 斷開(kāi)連接:數(shù)據(jù)庫(kù)用完之后,要養(yǎng)成主動(dòng)斷開(kāi)的習(xí)慣(被動(dòng)也可以,但是如果被動(dòng)沒(méi)有斷開(kāi),那么就會(huì)“占線”),mysql的客戶端可以使用\q | quit | exit,任意一個(gè)退出
在 Mysql 5.6 之前版本中 , 如果要修改一個(gè)表的ddl信息 ,需要鎖表 。
具體步驟如下:
下面是Mysql官方文檔對(duì)于DDL操作的總結(jié):
可以使用 Alter 語(yǔ)句支持 DDL 特性 ,比如可以用 LOCK = NONE 無(wú)鎖變更。
percona是一個(gè)開(kāi)源產(chǎn)品 , 是管理Mysql的工具。
PT-OSC(Percona Toolkit Online Schema Change)
Percona Toolkit 包含很多 mysql 管理的功能 ,現(xiàn)在要說(shuō)的是 online-schema-change上
PT-OSC 原理是建表 ,使用觸發(fā)器同步數(shù)據(jù) ,然后原子性rename。
這樣可以支持在線無(wú)鎖,不停機(jī)Online-DDL 。
具體步驟如下:
Percona 有一些限制和缺陷 ,根據(jù)它的原理 ,原表不能存在觸發(fā)器 ,這玩意是唯一。另外原表必須存在PK或者UK。另外就是觸發(fā)器的問(wèn)題了,觸發(fā)器帶來(lái)性能開(kāi)銷,并且無(wú)法停止,那我就不能控制我同步的開(kāi)關(guān)和速度。
但是gh-ost說(shuō)它可以。
go-ost基于bin-log同步 , 基于binlog肯定都是偽裝成一個(gè)replica。
由于使用單線程回放binlog來(lái)替換觸發(fā)器,所以增量DML回放效率不如觸發(fā)器,因?yàn)閜t-osc的增量回放并發(fā)度是與業(yè)務(wù)DML并發(fā)度相同的,是多線程的。
相對(duì)于percona的優(yōu)勢(shì)是:
因?yàn)槌龅奶砹?,然后percona 和 gh-ost等等開(kāi)源產(chǎn)品已經(jīng)大規(guī)模實(shí)踐了,Mysql就更加沒(méi)什么實(shí)踐案例和經(jīng)驗(yàn)了,大家就不太愿意嘗試或者遷移了。
大廠來(lái)說(shuō)基本上都是平臺(tái)封裝了,類似idb ,會(huì)把無(wú)鎖變更細(xì)節(jié)屏蔽了,只需要提工單就可以了 ,但是底層基本上也是建表同步rename個(gè)思路。
小公司的話,可以使用percona 、 go-ost 等工具。
MySQL 8.0 Online DDL和pt-osc、gh-ost深度對(duì)比分析
Mysql Online DDL
pt-online-schema-change
gh-ost
MySQL5.6在線表結(jié)構(gòu)變更(online ddl)總結(jié)
文章名稱:mysqlddl怎么看 mysqlDDL
轉(zhuǎn)載來(lái)源:http://chinadenli.net/article30/doojgso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄、App設(shè)計(jì)、品牌網(wǎng)站制作、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)