您好,登錄后才能下訂單哦!
這篇文章主要講解了“mysql該怎么學”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql該怎么學”吧!
1.使用 C和C++編寫,并使用了多種編譯器進行測試,保證了源代碼的可移植性。
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統。
3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多線程,充分利用 CPU 資源。
5.優化的SQL查詢算法,有效地提高查詢速度。
6.既能夠作為一個單獨的應用程序應用在客戶端服務器網絡環境中,也能夠作為一個庫而嵌入到其他的軟件中。
7.提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數據表名和數據列名。
8.提供TCP/IP、ODBC 和JDBC等多種數據庫連接途徑。
9.提供用于管理、檢查、優化數據庫操作的管理工具。
10.支持大型的數據庫。可以處理擁有上千萬條記錄的大型數據庫。
11.支持多種存儲引擎。
12.MySQL 是開源的,所以你不需要支付額外的費用。
13.MySQL 使用標準的SQL數據語言形式。
14.MySQL 對 PHP 有很好的支持,PHP是比較流行的 Web 開發語言。
15.MySQL是可以定制的,采用了GPL協議,你可以修改源碼來開發自己的 MySQL 系統。
16.在線 DDL/更改功能,數據架構支持動態應用程序和開發人員靈活性(5.6新增)
17.復制全局事務標識,可支持自我修復式集群(5.6新增)
18.復制無崩潰從機,可提高可用性(5.6新增)
19.復制多線程從機,可提高性能(5.6新增)
20.3倍更快的性能(5.7[7]新增)
21.新的優化器(5.7新增)
22.原生JSON支持(5.7新增)
23.多源復制(5.7新增)
24.GIS的空間擴展[8](5.7新增)
好噠,那知道了這些之后,我們接下來看調優,這也是在面試的過程中被經常問到的一些問題,而且隨著互聯網的發展,數據量的增大,不想引入大數據體系的,那只能在數據庫上下功夫了,那么對于數據庫的調優,不知道各位覺得難
看到這張思維導圖,從上往下,不知道在看這篇文章的你有沒有回想一下自己的知識體系中,這些方面是不是很清晰呢?
好,看完這句話,我的重點要來了,你在回想這些知識點的時候,是不是對你的知識點進行了一個回顧和梳理,查漏補缺,你也知道了自己知識點上的不足,是不是可以有針對性的進行學習呢?
我們以分庫和分表為例去進行一個商討
概念:以字段為依據,按照一定策略(hash、range等),將一個庫中的數據拆分到多個庫中。
結果:
每個庫的結構都一樣;
每個庫的數據都不一樣,沒有交集;
所有庫的并集是全量數據;
場景:系統絕對并發量上來了,分表難以根本上解決問題,并且還沒有明顯的業務歸屬來垂直分庫。
分析:庫多了,io和cpu的壓力自然可以成倍緩解。
概念:以字段為依據,按照一定策略(hash、range等),將一個表中的數據拆分到多個表中。
結果:
每個表的結構都一樣;
每個表的數據都不一樣,沒有交集;
所有表的并集是全量數據;
場景:系統絕對并發量并沒有上來,只是單表的數據量太多,影響了SQL效率,加重了CPU負擔,以至于成為瓶頸。推薦:一次SQL查詢優化原理分析
分析:表的數據量少了,單次SQL執行效率高,自然減輕了CPU的負擔。
概念:以表為依據,按照業務歸屬不同,將不同的表拆分到不同的庫中。
結果:
每個庫的結構都不一樣;
每個庫的數據也不一樣,沒有交集;
所有庫的并集是全量數據;
場景:系統絕對并發量上來了,并且可以抽象出單獨的業務模塊。
分析:到這一步,基本上就可以服務化了。例如,隨著業務的發展一些公用的配置表、字典表等越來越多,這時可以將這些表拆到單獨的庫中,甚至可以服務化。再有,隨著業務的發展孵化出了一套業務模式,這時可以將相關的表拆到單獨的庫中,甚至可以服務化。
概念:以字段為依據,按照字段的活躍性,將表中字段拆到不同的表(主表和擴展表)中。
結果:
每個表的結構都不一樣;
每個表的數據也不一樣,一般來說,每個表的字段至少有一列交集,一般是主鍵,用于關聯數據;
所有表的并集是全量數據;
場景:系統絕對并發量并沒有上來,表的記錄并不多,但是字段多,并且熱點數據和非熱點數據在一起,單行數據所需的存儲空間較大。以至于數據庫緩存的數據行減少,查詢時會去讀磁盤數據產生大量的隨機讀IO,產生IO瓶頸。
分析:可以用列表頁和詳情頁來幫助理解。垂直分表的拆分原則是將熱點數據(可能會冗余經常一起查詢的數據)放在一起作為主表,非熱點數據放在一起作為擴展表。這樣更多的熱點數據就能被緩存下來,進而減少了隨機讀IO。拆了之后,要想獲得全部數據就需要關聯兩個表來取數據。
但記住,千萬別用join,因為join不僅會增加CPU負擔并且會
好了,到這里,分庫和分表的操作基本就完成了,不知道大家有沒有什么感覺,如果知識只是單純的去看這些知識點,你能記住多久呢?反正如果我長時間不看,就忘了,,但是我不慫 啊,因為我有這張圖,而且比展示出來的更加詳細,所以當我需要用到時候就可以看了,直接就可以拿出來看,哪怕只有10分鐘就夠了。
感謝各位的閱讀,以上就是“mysql該怎么學”的內容了,經過本文的學習后,相信大家對mysql該怎么學這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。