摘要:肖鵬微博數據庫那些事兒肖鵬,微博研發中心技術經理,主要負責微博數據庫相關的業務保障性能優化架構設計,以及周邊的自動化系統建設。經歷了微博數據庫各個階段的架構改造,包括服務保障及體系建設微博多機房部署微博平臺化改造等項目。
對于手握數據庫的開發人員來說,沒有誤刪過庫的人生是不完整的。不過刪庫以后不用急著跑,說不定可以恢復呢?
MySQL 入門21分鐘MySQL基礎入門
我下面所有的SQL語句是基于MySQL 5.6+運行。
開始使用
增刪改查
WHERE
AND 和 OR
ORDER BY
IN
NOT
UNION
AS
JOIN
SQL 函數
觸發器
添加索引
創建后表的修改
MySQL入門教程學習筆記
從零開始學習MySQL,主要是面向MySQL數據庫管理系統初學者。
MySQL高性能學習筆記
一、Ubuntu 安裝mysql
二、sysbench基準測試
三、服務器性能剖析
四、慢查詢
五、Alter Table操作性能提升
MySQL索引專題一 認識索引
認識索引是什么東西非常關鍵,一個非常恰當的比喻就是書的目錄頁與書的正文內容之間的關系,為了方便查找書中的內容,通過對內容建立索引形成目錄。因此,首先你要明白的一點就是,索引它也是一個文件,它是要占據物理空間的。
Mysql 配置的工作原理
可能有時候我們會問,“我的服務器有50 GB內存,12核CPU,怎樣配置最好?” 很遺憾,問題沒這么簡單,MySQL 服務器的配置應該符合它的工作負載,數據,以及應用需求,并不僅僅看硬件的情況。通常只需要把基本的項配置正確,應該將更多的時間花費在 schema 的優化,索引,以及查詢設計上。MySQL 進階
MySQL多列索引的應用
我們經常聽到一些人說"把WHERE條件里的列都加上索引",其實這個建議非常錯誤。在多個列上建立多帶帶的索引大部分情況下并不能提高MySQL的查詢性能。MySQL在5.0之后引入了一種叫“索引合并”(index merge)的策略,一定程度上可以使用表上的多個單列索引來定位指定的行。但是當服務器對多個索引做聯合操作時,通常需要耗費大量CPU和內存資源在算法的緩存、排序和合并操作上,特別是當其中有些索引的選擇性不高,需要合并掃描大量的數據的時候。這個時候,我們需要一個多列索引。
MySql之主從復制
mysql的主從復制不但可以作為數據庫備份,也能實現數據庫的讀寫分離,為以后處理高并發打下基礎。
分布式數據庫分為主數據庫(master)和從數據庫(slaves)
主從復制的基本流程:
在master上更新的內容以二進制日志(Binary Log)的方式存在本地
slaves開啟IO線程拿到master服務器上的二進制流文件,并存入中繼日志(Relay Log)。這個工作叫做:binlog dump process
slaves再開啟一個SQL線程來讀取反序列化后的中繼日志,執行其中的sql語句,達到備份數據庫的效果
【踩坑記錄】記一次MySQL主從復制延遲的坑
最近開發中遇到的一個MySQL主從延遲的坑,記錄并總結,避免再次犯同樣的錯誤。
數據同步——otter
Ottter是由阿里巴巴開源的一個數據同步產品,它的最初的目的是為了解決跨國異地機房雙A架構,兩邊可寫的場景,開發時間從2011年7月份一直持續到現在,目前阿里巴巴B2B內部的本地/異地機房的同步需求基本全上了Otter。Otter基于數據庫增量日志解析,支持mysql/oracle數據庫進行同步,在最新的v4.2.13已經支持mysql5.7以及阿里云提供的RDS數據庫(使用RDS童鞋的福音)。
mysql數據庫實現讀寫分離
在項目中使用mysql數據庫,所有的增刪改查操作都在主庫處理,隨著查詢訪問量的增加,單庫處理的壓力驟增,為了防止主庫故障,使用一主多從的方式,通過讀寫分離,把所有的查詢處理都放到從服務器上,減少單點故障導致整個服務掛掉的情況。
MySQL中字段類型與合理的選擇字段類型;int(11)最大長度是多少?,varchar最大長度是多少
MySQL 的數值數據類型可以大致劃分為兩個類別,一個是整數,另一個是浮點數或小數。許多不同的子類型對這些類別中的每一個都是可用的,每個子類型支持不同大小的數據,并且 MySQL 允許我們指定數值字段中的值是否有正負之分(UNSIGNED)或者用零填補(ZEROFILL)。
【MySQL】Mysql鎖機制簡介
鎖是數據庫系統區別于文件系統的一個關鍵特性。鎖機制用于管理對共享資源的并發訪問,提供數據的完整性和一致性。
InnoDB存儲引擎不僅會在行級別上對表數據上鎖,還會在數據庫內部其他多個地方使用鎖,從而允許對多種不同資源提供并發訪問。如:操作緩沖池中LRU列表,刪除、添加、移動LRU列表中的元素,為了保證數據的完整性,必須有鎖的介入。
Mysql 事務及數據的一致性處理
在工作中,我們經常會遇到這樣的問題,需要更新庫存,當我們查詢到可用的庫存準備修改時,這時,其他的用戶可能已經對這個庫存數據進行修改了,導致,我們查詢到的數據會有問題,下面我們就來看解決方法。
用nginx訪問日志記錄mysql數據庫中的用戶id
nginx有很強大的日志功能,但是在缺省狀態下,它只能記錄用戶的IP地址以及瀏覽器信息。如果我們有用戶登錄注冊系統,在用戶已登錄的情況下,想記錄訪問某一個網頁的到底是哪一個用戶,怎么辦呢?因為我們不只想知道到底是哪一個IP地址訪問了哪一個網頁,并且還想知道到底是哪一個登錄用戶訪問了哪一個網頁,這對于我們日后有針對性地向他/她推薦信息甚至推送廣告都是非常有用的。
mysql(InnoDB)事務隔離級別(READ UNCOMMITTED) 與 鎖
MySQL 性能調優mysql 配置優化
優化 sql 語句的一般步驟
一、通過 show status 命令了解各種 sql 的執行頻率
二、定義執行效率較低的 sql 語句
三、通過 explain 分析低效 sql 的執行計劃
四、通過 performance_schema 分析 sql 性能
五、通過 trace 分析優化器如何選擇執行計劃。
六、 確定問題并采取相應的優化措施
mysql查詢與索引優化優化
性能下降SQL慢的原因
常見通用的join查詢
索引
索引的使用
項目中常用的19條MySQL優化
聲明一下:下面的優化方案都是基于 “ Mysql-索引-BTree類型 ” 的。
MySQL 【去重留一】一條sql語句完成 思路總結
前幾天在做一個需求的時候,需要清理mysql中重復的記錄,當時的想法是通過代碼遍歷寫出來,然后覺得太復雜,心里想著應該可以通過一個sql語句來解決問題的。查了資料,請教了大佬之后得出了一個很便利的sql語句,這里分享下這段sql語句和思路。
Mysql性能調優與測試
我們的Mysql服務運行一段時間后,不知什么原因就變慢了,怎么查找原因呢?
一、關鍵性指標
二、TPCC測試關鍵性指標
三、數據庫參數配置優化
四、MySQL系統狀態
MySQL性能優化方案總結
對MySQL進行優化主要可以從以下幾個方面進行:效果: SQL語句和索引 > 數據庫對象:表結構、字段類型、存儲引擎 > 配置 > 硬件
但成本從低到高。
MySQL 性能優化神器 Explain 使用分析
MySQL 提供了一個 EXPLAIN 命令,它可以對 SELECT 語句進行分析,并輸出 SELECT 執行的詳細信息,以供開發人員針對性優化。而EXPLAIN 命令用法十分簡單,在 SELECT 語句前加上 Explain 就可以了。
MySQL-InnoDB-MVCC多版本并發控制
MySQL的大多數事務型存儲引擎實現的其實都不是簡單的行級鎖。基于提升并發性能的考慮,它們一般都同時實現了多版本并發控制(MVCC)。不僅是MySQL,包括Oracle,PostgreSQL等其他數據庫系統也都實現了MVCC,但各自的實現機制不盡相同,因為MVCC沒有一個統一的實現標準。可以認為MVCC是行級鎖的一個變種,但是它在很多情況下避免了加鎖操作,因此開銷更低。雖然實現機制有所不同,但大都實現了非阻塞的讀操作,寫操作也只鎖定必要的行。
MySQL高并發事務問題及解決方案
事務 可以理解為一個獨立的工作單元,在這個獨立的工作單元中,有一組操作;放在事務(獨立工作單元)中的多個操作,要么全部執行成功,要么全部執行失敗。
MySQL大表優化方案
當MySQL單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以下步驟來優化:
單表優化
讀寫分離
緩存
表分區
垂直拆分
水平拆分
兼容MySQL且可水平擴展的數據庫
NoSQL
我必須得告訴大家的MySQL優化原理
說起MySQL的查詢優化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理創建索引、為字段選擇合適的數據類型..... 你是否真的理解這些優化技巧?是否理解其背后的工作原理?在實際場景下性能真有提升嗎?我想未必。因而理解這些優化建議背后的原理就尤為重要,希望本文能讓你重新審視這些優化建議,并在實際業務場景下合理的運用。
單表60億記錄等大數據場景的MySQL優化和運維之道 | 高可用架構
MySQL數據庫大家應該都很熟悉,而且隨著前幾年的阿里的去IOE,MySQL逐漸引起更多人的重視。
MySQL的優點:
使用簡單
開源免費
擴展性“好”,在一定階段擴展性好
社區活躍
性能可以滿足互聯網存儲和性能需求,離不開硬件支持
上面這幾個因素也是大多數公司選擇考慮MySQL的原因。不過MySQL本身存在的問題和限制也很多,有些問題點也經常被其他數據庫吐槽或鄙視。
肖鵬:微博數據庫那些事兒
肖鵬,微博研發中心技術經理,主要負責微博數據庫(MySQL/Reids/HBase/Memcached)相關的業務保障、性能優化、架構設計,以及周邊的自動化系統建設。經歷了微博數據庫各個階段的架構改造,包括服務保障及SLA體系建設、微博多機房部署、微博平臺化改造等項目。10年互聯網數據庫架構和管理經驗,專注于數據庫的高性能和高科用技術保障方向。MySQL 備份與恢復
MySQL 備份和恢復機制
一、 備份恢復策略
二、 邏輯備份和恢復
三、物理備份和恢復
四、 表的導入導出
自動備份MySQL數據庫并發送郵件的SHELL腳本
自己平常用的一個shell腳本,起自動備份mysql中所有數據庫作用,在任務執行完成后,會記錄日志和自動發送郵件到郵箱。配合crontab可以實現每天自動備份。
linux數據庫定期備份
目標: 每隔1分鐘,導出.sql,壓縮,并按日期存儲在/data 下,每分鐘后刪除.sql文件,每隔2分鐘刪除.tar.gz文件知識: 定時任務 crontab , mysqldump 導出 , tar 打包壓縮, 按日期創建文件 date
Linux定時備份數據庫到指定郵箱
這里使用的是網易郵箱126郵箱的STMP服務,服務器是smtp.126.com。如果你使用其它第三方郵箱,在帳號設置那里一般都有說明SMTP服務器地址。
Linux MySQL定時備份并上傳到git倉庫
對于備份的數據文件我們可能會存放在服務器目錄,備份周期的話當然是按照數據量來說的,這里我們一般都是每天的凌晨備份一次。備份后的文件存放在我們的服務器的目錄下面,但是萬一有一天服務器也崩潰了,那么備份的文件也就沒了。
所以我們設想一個好的方案就是數據庫每天備份,每次備份自動提交到遠程倉庫,這里我以碼云為例。
使用xtrabackup對MySQL innodb表熱備份,增量備份
對于數據庫的備份重要性不必多言,為了防止數據以各種方式丟失,損壞,必須對數據庫進行定期備份。首先考慮備份的時候對數據庫業務的影響。
再者如果定期進行備份,如果每次都進行全量備份,顯然一部分數據是重復,浪費大量磁盤空間。
shell腳本實現mysql數據備份
今天遇到一個很傻逼的問題,有人登上開發服務器,不知是有意還是無心;把mysql里面的庫全部刪除了。。。那個人結果如何,我們就不作討論了。。。沒辦法我只能寫個shell腳本,用crontab跑下定時;做些簡單的數據備份了,順便寫個筆記。
其實很簡單:
寫一個shell腳本通過mysql的mysqldump,將數據導出成對應的sql文件;
使用linux的crontab定時運行對應腳本,將sql,文件保存到對應的目錄下;
可想而知,隨著數據量的增加和備份的頻率都會導致備份服務器的硬盤資源使用率也會直線攀升;為了解決這個問題,我們就需要,定時清理備份內容;而我還是簡單的使用了個shell腳本,通過crontab定時去清理;
MySQL誤操作后如何快速恢復數據
基本上每個跟數據庫打交道的程序員(當然也可能是你同事)都會碰一個問題,MySQL誤操作后如何快速回滾?比如,delete一張表,忘加限制條件,整張表都沒了。假如這還是線上環境核心業務數據,那這事就鬧大了。誤操作后,能快速回滾數據是非常重要的。
mysqldump - 給 DBA 的 25 個小技巧
本期完
:)
歡迎關注 SegmentFault 講堂服務號 :)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17689.html
摘要:數人云告別人肉運維上海的實錄第二彈來啦本次分享的嘉賓是餓了么團隊負責人虢國飛。虢國飛餓了么團隊負責人從事數據庫領域年,主要關注于數據庫管理自動化建設和等領域的研究。本次主題關于數據安全的保障。在這一層,餓了么做了一些數據方面相關的保護。 數人云告別人肉運維上海Meetup的實錄第二彈來啦!本次分享的嘉賓是餓了么DBA團隊負責人虢國飛。實錄將從用戶訪問、數據庫架構體系、數據備份、數據流轉...
摘要:數人云告別人肉運維上海的實錄第二彈來啦本次分享的嘉賓是餓了么團隊負責人虢國飛。虢國飛餓了么團隊負責人從事數據庫領域年,主要關注于數據庫管理自動化建設和等領域的研究。本次主題關于數據安全的保障。在這一層,餓了么做了一些數據方面相關的保護。 數人云告別人肉運維上海Meetup的實錄第二彈來啦!本次分享的嘉賓是餓了么DBA團隊負責人虢國飛。實錄將從用戶訪問、數據庫架構體系、數據備份、數據流轉...
閱讀 2561·2021-09-02 15:40
閱讀 1565·2019-08-30 15:54
閱讀 1079·2019-08-30 12:48
閱讀 3398·2019-08-29 17:23
閱讀 1046·2019-08-28 18:04
閱讀 3664·2019-08-26 13:54
閱讀 606·2019-08-26 11:40
閱讀 2390·2019-08-26 10:15