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