好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Mysql數據庫性能優化三(分表、增量備份、還原)

Mysql數據庫性能優化三(分表、增量備份、還原)

熱門標簽:互聯網電話外呼系統 家庭農場地圖標注名稱怎樣起名 電話機器人怎么代理商 零成本地圖標注賺錢 安卡拉地圖標注app 電銷需要外呼系統嗎 千呼電話機器人可以試用嗎 400電話辦理泰安 我要地圖標注數量有限制嗎

接上篇Mysql數據庫性能優化二

對表進行水平劃分          

如果一個表的記錄數太多了,比如上千萬條,而且需要經常檢索,那么我們就有必要化整為零了。如果我拆成100個表,那么每個表只有10萬條記錄。當然這需要數據在邏輯上可以劃分。一個好的劃分依據,有利于程序的簡單實現,也可以充分利用水平分表的優勢。比如系統界面上只提供按月查詢的功能,那么把表按月拆分成12個,每個查詢只查詢一個表就夠了。如果非要按照地域來分,即使把表拆的再小,查詢還是要聯合所有表來查,還不如不拆了。所以一個好的拆分依據是 最重要的。關鍵字:UNION

例:

  • 訂單表根據訂單產生時間來分表(一年一張)
  • 學生情況表
  • 查詢電話費,近三個月的數據放入一張表,一年內的放入到另一張表

對表進行垂直劃分 

有些表記錄數并不多,可能也就2、3萬條,但是字段卻很長,表占用空間很大,檢索表時需要執行大量I/O,嚴重降低了性能。這個時候需要把大的字段拆分到另一個表,并且該表與原表是一對一的關系。 (JOIN)       

【試題內容】、【答案信息】兩個表,最初是作為幾個字段添加到【試題信息】里的,可以看到試題內容和答案這兩個字段很長,在表里有3萬記錄時,表已經占 了1G的空間,在列試題列表時非常慢。經過分析,發現系統很多時候是根據【冊】、【單元】、類型、類別、難易程度等查詢條件,分頁顯示試題詳細內容。而每 次檢索都是這幾個表做join,每次要掃描一遍1G的表。我們完全可以把內容和答案拆分成另一個表,只有顯示詳細內容的時候才讀這個大表,由此 就產生了【試題內容】、【答案信息】兩個表。

選擇適當的字段類型,特別是主鍵     

選擇字段的一般原則是保小不保大,能用占用字節小的字段就不用大字段。比如主鍵, 建議使用自增類型,這樣省空間,空間就是效率!按4個字節和按32個字節定位一條記錄,誰快誰慢太明顯了。涉及到幾個表做join時,效果就更明顯了。

建議使用一個不含業務邏輯的id做主角如s1001。例:

int 4 bigint 8 mediumint smallint 2 tinyint 1
md5 char(32)
id :整數 tinyint samllint int bigint
student表
id stuno  stuname  adress
 s1001 小民   深圳

文件、圖片等大文件用文件系統存儲

數據庫只存儲路徑。圖片和文件存放在文件系統,甚至單獨放在一臺服務器(圖床 / 視頻服務器 ).

數據庫參數配置

最重要的參數就是內存,我們主要用的innodb引擎,所以下面兩個參數調的很大

innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size =1G

對于myisam,需要調整key_buffer_size,當然調整參數還是要看狀態,用show status語句可以看到當前狀態,以決定改調整哪些參數

在my.ini修改端口3306,默認存儲引擎和最大連接數

在my.ini中.
port=3306 [有兩個地方修改]
default-storage-engine=INNODB 
max_connections=100

合理的硬件資源和操作系統

如果你的機器內存超過4G,那么毋庸置疑應當采用64位操作系統和64位mysql 5.5.19 or mysql5.6

讀寫分離

    如果數據庫壓力很大,一臺機器支撐不了,那么可以用mysql復制實現多臺機器同步,將數據庫的壓力分散。

    Master
  Slave1
  Slave2
  Slave3

主庫master用來寫入,slave1—slave3都用來做select,每個數據庫分擔的壓力小了很多。
要實現這種方式,需要程序特別設計,寫都操作master,讀都操作slave,給程序開發帶來了額外負擔。當然目前已經有中間件來實現這個代理,對程 序來讀寫哪些數據庫是透明的。官方有個mysql-proxy,但是還是alpha版本的。新浪有個amobe for mysql,也可達到這個目的,結構如下

定時完成數據庫的備份

項目實際需求,請完成定時備份某個數據庫,或者定時備份數據庫的某些表的操作

windows 下每隔1小時,備份一次數據newsdb

windows 每天晚上2:00   備份 newsdb 下 某一張表

cmd> mysqldump –u root –p密碼  數據庫名 > 把數據庫放入到某個目錄

案例,備份 mydb 庫的所有表

進入mysqldump所在的目錄

cmd> mysqldump –u root –phsp shop> d:/shop.log   [把shop數據庫的所有表全部導出]

cmd> mysqldump –u root –phsp shop temusers emp > d:/shop2.log [shop數據庫的 temusers和emp導出]

如何恢復數據的表

進入的mysql操作界面

mysql>source  備份文件的全路徑

定時備份:(把命令寫入到my.bat 問中)

windows 如何定時備份 (每天凌晨2:00)

使用windows自帶的計劃任務,定時執行批處理命令。

增量備份和還原

定義:mysql數據庫會以二進制的形式,自動把用戶對mysql數據庫的操作,記錄到文件,當用戶希望恢復的時候,可以使用備份文件進行恢復。

增量備份會記錄dml語句、創建表的語句,不會記錄select。記錄的東西包括:sql語句本身、操作時間,位置

進行增量備份的步驟和恢復

注意:mysql5.0及之前的版本是不支持增量備份的

1、配置my.ini文件或者my.conf,啟用二進制備份。

打開my.ini文件,查找log-bin,進行配置:log-bin=G:\Database\mysqlbinlog\mylog

在G:\Database目錄下面新建目錄mysqlbinlog

2、重啟mysql服務

這個時候會在mysqlbinlog目錄下面看到以下兩個文件:

mylog.000001:日志備份文件。如果要查看這個日志文件里面的信息,我們可以使用mysqlbinlog程序查看,mysqlbinlog程序存放在mysql的bin目錄下面(“C:\Program Files\MySQL\MySQL Server 5.6\bin”)。

執行sql語句

UPDATE emp set ename='zouqj' where empno=100003;

開始——運行——cmd,mysqlbinlog 備份文件路徑

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqlbinlog G:\Database\mysqlbinlog\mylog.000001

mylog.index:日志索引文件,里面記錄了所以的日志文件。(G:\Database\mysqlbinlog\mylog.000001)

3、假設現在問題來了,我這條update是誤操作,如何進行恢復

在mysql日志中會記錄每一次操作的時間和位置,所以我們既可以根據時間來恢復,也可以根據位置來恢復。

那么,我們現在馬上可以從上圖看出,這條語句產生的時間是"2016-04-17 12:01:36",位置是614

按時間來恢復

我們可以選擇在語句產生時間的前一秒

執行cmd命令:mysqlbinlog --stop-datetime="2016-04-17 12:01:35" G:\Database\mysqlbinlog\mylog.000001 | mysql -uroot -p

這個時候我再執行SQL語句查看

SELECT * from emp where empno=100003;

結果變成了

按位置來恢復

執行cmd命令:mysqlbinlog --stop-position="614" G:\Database\mysqlbinlog\mylog.000001 | mysql -uroot -p

這個時候再執行SQL來查看結果,又變回來了。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

您可能感興趣的文章:
  • 優化Mysql數據庫的8個方法
  • mysql數據庫優化總結(心得)
  • MySQL優化全攻略-相關數據庫命令
  • MySQL數據庫優化詳解
  • mysql中優化和修復數據庫工具mysqlcheck詳細介紹
  • mysql數據庫查詢優化 mysql效率
  • Mysql數據庫性能優化一
  • MySQL數據庫21條最佳性能優化經驗
  • mysql數據庫常見的優化操作總結(經驗分享)
  • mysql數據庫sql優化原則(經驗總結)
  • 詳解MySQL數據庫優化的八種方式(經典必看)
  • MYSQL數據庫表結構優化方法詳解

標簽:濱州 文山 來賓 池州 黃山 東營 新鄉 大同

巨人網絡通訊聲明:本文標題《Mysql數據庫性能優化三(分表、增量備份、還原)》,本文關鍵詞  Mysql,數據庫,性能,優化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql數據庫性能優化三(分表、增量備份、還原)》相關的同類信息!
  • 本頁收集關于Mysql數據庫性能優化三(分表、增量備份、還原)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美精品成人一区二区在线观看| 欧美麻豆精品久久久久久| 一女多男部队np军人小说| 免费涩涩18网站入口下载| 欧美人shou交在线播放| 亚洲视频一二区| 免费看裸体美女??????动漫| 网站无遮免费看| 影音先锋ady69色资源网站| 男男GaYGAYS?欧洲网站| 最新91地址永久入口发布| 国产精品秘?第一区在线| 久久一区二区精品综合| 美女视频黄频a免费观看| 微杏十年app十年出| 公和两个熄洗澡三级中文字| 综合天堂AV久久久久久久| **毛片免费观看视频| 性工具酷刑虐女惨叫视频| 国产精品99久久AV色婷婷综合| 特级黄色毛片| 伦理片在线视频| 亚洲成熟xxxxx| 久久96国产精品久久99软件| 亚洲另类色区欧美日韩| ass丰满大白腚picses| 成人A片色情免费观看| 艳母在线观| 国产真实乱人偷精品人妻图片| 亚洲小说图片区| 他是疯批(强制肉高h1v1)| 免费看吻胸亲嘴激烈网站| 美国黄色a级片| 扒开双腿进入爽爽视频| 万山特区| 公交车系列h小短文| 公交车上人妻被涂春药bd| 超清中文乱码超清中文字乱码字幕| 学长高h污肉1v1| 诱人的女老板HD在线观看| 娇妻在ktv被朋友玩9章|