MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)連平免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發(fā)環(huán)境。
由于MySQL是開放源碼軟件,對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能綽綽有余,可以大大降低開發(fā)成本。
Linux作為操作系統(tǒng),Apache 或Nginx作為 Web 服務(wù)器,MySQL 作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個軟件都是免費或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP“或“LNMP”組合。
選中某個表,然后右鍵點擊,選擇“設(shè)計表”即可。
也可以左鍵點擊某個表(即選中某表),在上面輔助菜單欄里有“打開表”、“設(shè)計表”、“新建表”等按鈕可點擊,點擊“設(shè)計表”按鈕即可。
進入后,會彈出新的操作窗口,新窗口的菜單欄里有常用的修改表結(jié)構(gòu)的按鈕,右鍵點擊某列字段也可以彈出相應(yīng)的修改表的操作按鈕。
其它摸索著看提示操作即可,還是很簡單的。
修改好表后點擊菜單欄上的“保存”按鈕即可。
注:若要查看修改表的sql語句,必須在“保存”之前點擊“SQL預(yù)覽”按鈕。
在JAVA開發(fā)中數(shù)據(jù)庫的學(xué)習(xí)也是我們需要了解的,截下來幾篇文章都是關(guān)于數(shù)據(jù)庫的設(shè)計和應(yīng)用,那么java課程培訓(xùn)機構(gòu)廢話不多說開始學(xué)習(xí)吧!??數(shù)據(jù)庫的設(shè)計??數(shù)據(jù)庫設(shè)計是基礎(chǔ),數(shù)據(jù)庫優(yōu)化是建立在設(shè)計基礎(chǔ)之上的。
好的數(shù)據(jù)庫一定擁有好的設(shè)計。
數(shù)據(jù)庫設(shè)計的目標(biāo)是為用戶和各種應(yīng)用系統(tǒng)提供一個信息基礎(chǔ)設(shè)施和高效的運行環(huán)境。
數(shù)據(jù)庫的三大范式??第一范式1NF:所有的域都應(yīng)該是原子性的,即數(shù)據(jù)庫表的每一列都是不可分割的原子數(shù)據(jù)項,而不能是集合,數(shù)組,記錄等非原子數(shù)據(jù)項。
第二范式2Nf:第二范式在第一范式的基礎(chǔ)之上更進一層。
第二范式需要確保數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),而不能只與主鍵的某一部分相關(guān)(主要針對聯(lián)合主鍵而言)。
也就是說在一個數(shù)據(jù)庫表中,一個表中只能保存一種數(shù)據(jù),不可以把多種數(shù)據(jù)保存在同一張數(shù)據(jù)庫表中。
第三范式3Nf:所有字段必須與主鍵直接相關(guān),而不是間接相關(guān)。
也可以理解為字段不要和其他非主鍵字段相關(guān).??注意:這三個范式盡可能去遵守,不是一定要墨守成規(guī).這只是讓我們設(shè)計的表的時候,越靠近這些范式,可以使字段盡量的減小冗余.但是有時候也可以根據(jù)實際需要小小的違背一下.但是第三范式違反一下還可以接受,但是第一范式別違反.??數(shù)據(jù)庫設(shè)計的步驟??需求分析階段??準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
是整個設(shè)計過程的基礎(chǔ),是最困難、最耗費時間的一步。
概念結(jié)構(gòu)設(shè)計階段??是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵--設(shè)計數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整??Entity_Relationship---實體之間的關(guān)系??一對一??一對多??多對一
MySQL主從關(guān)系設(shè)置
一,概要
1.這個文檔主要實現(xiàn)的是MYSQL主從備份(主機數(shù)據(jù)庫任何修改,備份機器都會有實現(xiàn))
2.但是有個問題,就是如果對備份機器數(shù)據(jù)庫進行操作,可能會導(dǎo)致連接失敗。
二,準(zhǔn)備工作
1.可以是多臺主機和從機,在這里我只用一臺主機和從機為例講解主從關(guān)系配置。2.主機IP:192.168.0.100(例子)從機IP:192.168.0.101(例子)3.主機和從機的IP地址必須是一個網(wǎng)段的。
4.MySQL版本:mysql-5.5.15-win32.msi安裝路徑:D:\MySQL\(例子)5.其他相關(guān)軟件:
①.MySQL管理客戶端:Navicat8forMySQL(Windows)。
②.編輯工具:Notepad++(建議用此編輯工具修改MySQL配置文件,點擊此鏈接進入下載
頁面)
三,配置主機【master】(IP:192.168.0.100)
1.在命令行窗口中執(zhí)行:netstopmysql關(guān)閉mysql服務(wù)。
2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都在MySQL安裝目錄下,本實驗中在D:\MySQL\下。記得先備份以下原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代碼:
server-id=1#配一個唯一的ID編號
log-bin=NEW_NAME#指定日志類型
binlog-do-db=bojinv2#設(shè)置要進行主從復(fù)制的數(shù)據(jù)庫名,同時也要在從機
【Slave】上設(shè)定(同步多個另起一行輸入這行代碼)
Binlog-ignore-db=mysql#設(shè)置不要進行主從復(fù)制的數(shù)據(jù)庫名,同時也要在
【Slave】上設(shè)定(不同步多個另起一行輸入這行代碼
即可。)
3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動mysql服務(wù)
4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),
輸入數(shù)據(jù)庫密碼:******回車,如下圖所示:
然后輸入:grantreplicationslaveon*.*toslaveuser@從機IP(例:192.168.1.101)identifiedby'從機數(shù)據(jù)庫密碼(例:123456)'回車后如下圖所示:
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
出現(xiàn)這樣的提示后,繼續(xù)輸入:flushprivileges;按回車,如下圖所示:
出現(xiàn)這樣的提示后,繼續(xù)輸入:showmasterstatus;按回車,如下圖所示:
記住出現(xiàn)的表格中的File列和Position的值。
5.在系統(tǒng)管理命令窗口輸入:netstopmysql按回車關(guān)閉mysql服務(wù)
6.進入MySQL管理客戶端:Navicat8forMySQL(Windows)。點擊菜單欄用戶,右側(cè)顯示你
剛才創(chuàng)建slaveuser@192.168.1.101的用戶,選中該用戶。點擊編輯用戶鏈接。彈出窗口,再
選擇權(quán)限,將所有權(quán)限都選上保存,這樣主機就配置好了。重啟一下MySQL服務(wù)。
四,配置從機【slave】(Ip:192.168.1.101)
1.在命令行窗口中執(zhí)行:netstopmysql關(guān)閉mysql服務(wù)。
2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都
在MySQL安裝目錄下,本實驗中在D:\MySQL\下。記得先備份以下
原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代
碼:
server-id=2#配一個唯一的ID編號,不能與主機和其他的從機相同
replicate-do-db=bojinv2#設(shè)置要進行主從復(fù)制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與主機
相同
replicate-ignore-db=mysql#設(shè)置不要進行主從復(fù)制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與
主機相同
別忘了保存修改后的文件。
3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動mysql服務(wù)
4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),
輸入數(shù)據(jù)庫密碼,按回車成功登錄數(shù)據(jù)庫。5.登錄成功后,在該命令窗口輸入:
Changemastertomaster_host='主機IP(192.168.1.100)',master_user='
Log File物理結(jié)構(gòu)
從 ib_logfile0和 ib_logfile1這兩個文件的物理結(jié)構(gòu)可以看出,在Log Header部分還是有些許差異的, ib_logfile0會多一些額外的信息,主要是checkpoint信息。
并且每個Block的單位是512字節(jié),對應(yīng)到磁盤每個扇區(qū)也是512字節(jié),因此redo log寫磁盤是原子寫,保證能夠?qū)懗晒Γ幌駃ndex page一樣需要double write來保證安全寫入。
我們依次從上到下來看每個Block的結(jié)構(gòu)
Log File Header Block
Log Goup ID,可能會配置多個redo組,每個組對應(yīng)一個id,當(dāng)前都是0,占用4字節(jié)
Start LSN,這個redo log文件開始日志的lsn,占用8字節(jié)
Log File Number,總是為0,占用4字節(jié)
Created By,備份程序所占用的字節(jié)數(shù),占用32字節(jié)
另外在ib_logfile0中會有兩個checkpoint block,分別是 LOG_CHECKPOINT_1/ LOG_CHECKPOINT_2,兩個記錄InnoDB Checkpoint信息的字段,分別從文件頭的第二個和第四個block開始記錄,并且只在每組log的第一個文件中存在,組內(nèi)其他文件雖然沒有checkpoint相關(guān)信息,但是也會預(yù)留相應(yīng)的空間出來。這里為什么有兩個checkpoint的呢?原因是設(shè)計為交替寫入,避免因為介質(zhì)失敗而導(dǎo)致無法找到可用的checkpoint的情況。
Log blocks
請點擊輸入圖片描述
log block結(jié)構(gòu)分為日志頭段、日志記錄、日志尾部
Block Header,占用12字節(jié)
Data部分
Block tailer,占用4字節(jié)
Block Header
這個部分是每個Block的頭部,主要記錄的塊的信息
Block Number,表示這是第幾個block,占用4字節(jié),是通過LSN計算得來的,占用4字節(jié)
Block data len,表示該block中有多少字節(jié)已經(jīng)被使用了,占用2字節(jié)
First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,占用2字節(jié)
Checkpoint number,表示該log block最后被寫入時的檢查點的值,占用4字節(jié)
簡單用戶表 tb_user:
userid , username
用戶詳細(xì)信息表 tb_userinfo
userid , email , homepage , phone , address
把用戶信息分開的目的就是保證經(jīng)常查詢的數(shù)據(jù)在一張表,其它信息放到另一張表
論壇主題表 tb_bbs
bbsid , userid , title , ip , repleycount , replyuserid , createtime , lastreplytime
論壇內(nèi)容標(biāo) tb_bbs_content (此表可按照bbsid進行分表存儲)
bbsid , content;
論壇回復(fù)表 tb_bbs_reply (此表可按照bbsid進行分表存儲)
replyid , bbsid , userid , content , replytime , ip
網(wǎng)站名稱:mysql是怎么設(shè)計的,mysql怎么設(shè)計表
文章分享:http://chinadenli.net/article8/dsegdop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、外貿(mào)建站、網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、App開發(fā)、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)