資料庫大牛
『壹』 mysql是干什麼用的
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的RDBMS(Relational Database Management System,關系資料庫管理系統) 應用軟體之一。
MySQL是一種關系資料庫管理系統,關系資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
(1)資料庫大牛擴展閱讀
mysql的命令
1、顯示資料庫列表。
show databases;
剛開始時才兩個資料庫:mysql 和 test。mysql 庫很重要它裡面有 MySQL 的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、顯示庫中的數據表:
use mysql; //打開庫,學過 FOXBASE 的一定不會陌生吧
show tables;
3、顯示數據表的結構:
describe 表名;
4、建庫:
create database 庫名;
5、建表:
use 庫名;
create table 表名 (欄位設定列表);
『貳』 資料庫工程師的技術能力
資料庫工程師以技術為基礎,通過技術保障資料庫提供更高質量的服務。資料庫工程師工作的職責及在業務中的位置決定了資料庫工程師需要具備更加廣博的知識和深入的技術能力。在資料庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名資料庫工程師應掌握的一些技能:
1)理解數據備份/恢復與災難恢復
恢復已損壞的資料庫是每一個資料庫工程師應掌握的最重要的技能。資料庫工程師需要完全理解資料庫所有可能的備份與恢復方法,以及不同備份方法與不同恢復策略的對應關系。此外,資料庫工程師還需要與業務部門合作,一起確認業務需求,明確用戶能夠容忍的數據丟失底線。此外,業務用戶還需要確定在系統故障情況下,他們的業務能夠維持多長時間。理解這些需求可以幫助資料庫工程師開發出一個滿足業務用戶要求的備份/恢復方法。一個優秀的資料庫工程師要定期測試備份與恢復流程,保證他們有能力恢復業務數據,滿足企業所規定的業務數據丟失與恢復要求。
2)工具集的使用
所謂工具集,指的是一組用於執行不同資料庫工程師任務的腳本。這個工具集應該包含不同的小代碼片段,它們可以快速診斷問題或執行一個特定的任務。這些工具腳本應該按資料庫工程師的活動類型歸類,如備份、索引維護、性能優化、容量管理等。由於總是會執行新任務、發現新問題或找到其他人開發的好用腳本,因此一個優秀的資料庫工程師會不斷地給這個工具集增加新腳本。此外,他還應該了解網上哪裡能夠找到一些免費的工具和腳本。一個好的資料庫工程師知道什麼時候可以利用其他人編寫的腳本,從而節省自己的時間和改進自己的工具集。
3)知道如何快速尋找答案
資料庫每天會面臨各種各樣故障的挑戰,從硬體到網路,從性能壓力到程序bug,資料庫工程師都要從容應對,一一排除。即使是資料庫大牛,也不可能是無所不知的,因此每個資料庫工程師一方面需要不斷修煉自己,積累操作系統、網路、硬體、存儲系統、分布式計算等理論基礎,另一方面還要有快速尋找新問題解決方法的能力。如果一個資料庫實例不能按預期方式運轉,那麼快速尋找新問題的解決方法也是一個重要能力。一個好的資料庫工程師知道如何快速地在網上查找一個未知問題的解決方法。此外,他們也可能已經知道了一些非常不錯的網站,也知道業界專家會提供一些好建議,同時知道什麼時候應該忽略一些不好的建議。你可能想像不到,確實有一些建議不值得參考。
4)如何監控和優化資料庫性能
對於任何資料庫產品,性能都尤其重要,它會直接影響產品的響應速度和用戶體驗。對於一個資料庫工程師來說,性能優化一般需要佔用50%的工作時間,因此資料庫工程師需要知道如何監控和優化數據性能。
以SQL Server舉例,性能是一個關鍵的問題,因此資料庫工程師需要知道如何修復故障和監控性能問題。有許多第三方性能監控工具可以幫助資料庫工程師優化性能。如果資料庫工程師只使用第三方工具,而不會使用SQL Server自帶的原生工具來監控性能,那麼相信很快就會出現問題。雖然使用第三方工具來監控性能也很不錯,但是資料庫工程師一定要理解SQL自帶的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic Management Views、系統/擴展的存儲過程、Extended Events等。許多第三方工具實際上在使用這些底層的原生工具。因此,理解這些自帶的原生工具將有利於增強資料庫工程師使用第三方工具的經驗。
5)研究新版本
在技術領域中,沒有什麼是一成不變的。每隔兩三年,主流資料庫廠商都會發布一個大版本的更新。資料庫工程師應該緊跟新版本所作的修改,它們可能有許多變化方法,最好的方法是遲早介入這個過程。測試版開放後馬上下載和安裝,盡快掌握第一手使用經驗。一名好的資料庫工程師總是走在學習排頭兵,總是會第一時間安裝和測試新版本。這樣他們就可以盡早理解新特性,然後提出一些合理的新建議,幫助組織更好地利用新版本資料庫。
6)理解代碼最佳實踐方法
資料庫工程師應該了解如何編寫高效的代碼。有許多糟糕的編碼實踐方法會導致拙劣的性能。一名好的資料庫工程師要能夠理解和識別這些糟糕的編碼實踐方法,知道如何修改這些爛代碼,讓它們變成高效代碼。此外,他們還要記錄下寫代碼的最佳實踐方法,並且將這些實踐方法分享給其他人。
7)持續不斷地學習
資料庫及其組件涉及面非常廣。資料庫工程師很難理解一個技術的方方面面。資料庫工程師需要持續學習如何管理資料庫。這個學習過程有很多方法。其中之一就是參加正式培訓。但是,並非人人都有這樣充裕的事件和金錢,也並非人人都能夠放下手頭工作專門出去參加正式的培訓。但是,還有許多其他方法可以獲得培訓,而且大多數還是免費的。一名好的資料庫工程師一定要訂閱一些定期發布資料庫新技巧和新文章的社區網站。此外,他還應該加入一些用戶組織,可以在周末參加一些當地的免費沙龍活動。
8)資料庫安全性
安全性是一個熱門話題。資料庫工程師應該完全掌握如何實現資料庫的安全訪問。他們應該理解操作系統身份驗證和資料庫身份驗證的區別,以及它們各自的使用場合。他們應該理解如何使用資料庫角色來管理不同類型用戶的安全配置。他們應該理解連接資料庫的埠與協議。此外,他們還應該理解如何加密整個資料庫,或者加密一個資料庫中一個表的某一個欄位,同時理解關於加密數據的各種問題。
9)資料庫設計
決定資料庫性能的一個關鍵問題是資料庫設計。資料庫工程師需要理解關於資料庫設計的各個方面。他們要能夠理解設計好壞的區別。他們需要理解為什麼使用正確的外鍵約束、主鍵、檢查約束和使用數據類型能夠保持資料庫的數據完整性和實現高效的數據查詢與更新。
10)索引設計
資料庫索引是提高應用程序檢索和更新數據速度的重要環節。資料庫工程師需要知道索引的工作原理。他們應該知道聚簇索引和非聚簇索引的區別,知道這些索引的物理存儲方式。資料庫工程師應該知道如何在執行計劃中使用這些索引。他們應該理解如何找到索引的使用統計、理解索引碎片及如何發現丟失的索引。他們應該知道如何維護索引,以及索引統計信息對於查詢引擎的重要作用。
11)容量監控與規劃
資料庫往往要使用大量的資源,包括CPU、內存、I/O及磁碟空間。資料庫工程師應該理解如何監控資料庫所需要的不同主機資源的用量。他們應該能夠理解這些資源在不同時間的使用情況,以及利用歷史使用數據來規劃未來的容量需求。在監控過程中,資料庫工程師應該能夠預見到容量規劃會在將來什麼時候出現問題,然後採取必要的措施保持資料庫不會因為容量限制而出現中斷。
12)資料庫許可證
不同的產品有許多不同的許可證授權方式。而且,同一款產品本身又有許多不同的版本。資料庫工程師應該理解所負責的資料庫版本的不同授權模式。他們應該能夠提供指導如何通過合理購買授權來減少資料庫總擁有成本,以及如何合理利用授權方法來降低未來版本的升級成本。
13)盡可能實現自動化
資料庫工程師每天都需要執行許多的日常任務。其中一些任務需要每天執行,而另一些則每周、每月或每年執行。一名好的資料庫工程師需要理解如何高效地安排自己的時間。其中一種方法是建立工作流程,這些日常任務的自動執行。通過實現日常任務的自動化執行,資料庫工程師就可以用更多的時間去關注於資料庫環境管理中遇到的嚴重問題。
你具備的特質越多,作為資料庫工程師的你就越優秀。成為一名成功資料庫工程師的關鍵是不斷地學習與提高,努力去掌握更多關於如何管理和維護資料庫環境的知識。