成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

帶你了解10個MySQL數據庫技巧(一)

數據庫 MySQL
無論是運維、開發、測試,還是架構師,數據庫技術是一個必備加薪神器,那么,一直說學習數據庫、學MySQL,到底是要學習它的哪些東西呢?

10個MySQL數據庫技巧

無論是運維、開發、測試,還是架構師,數據庫技術是一個必備加薪神器,那么,一直說學習數據庫、學MySQL,到底是要學習它的哪些東西呢?

01 如何快速掌握MySQL?

培養興趣

興趣是***的老師,不論學習什么知識,興趣都可以極大地提高學習效率。當然學習MySQL 5.6也不例外。

夯實基礎

計算機領域的技術非常強調基礎,剛開始學習可能還認識不到這一點,隨著技術應用的深 入,只有有著扎實的基礎功底,才能在技術的道路上走得更快、更遠。對于MySQL的學習來說, SQL語句是其中最為基礎的部分,很多操作都是通過SQL語句來實現的。所以在學習的過程中, 讀者要多編寫SQL語句,對于同一個功能,使用不同的實現語句來完成,從而深刻理解其不同之處。

及時學習新知識

正確、有效地利用搜索引擎,可以搜索到很多關于MySQL 5.6的相關知識。同時,參考別 人解決問題的思路,也可以吸取別人的經驗,及時獲取***的技術資料。

多實踐操作

數據庫系統具有極強的操作性,需要多動手上機操作。在實際操作的過程中才能發現問題, 并思考解決問題的方法和思路,只有這樣才能提高實戰的操作能力。

02 如何選擇服務器的類型?

MySQL服務器配置窗口中各個參數的含義如下。

【Server Configuration Type】該選項用于設置服務器的類型。單擊該選項右側的向下按鈕, 即可看到包括3個選項。

3個選項的具體含義如下:

  • Development Machine(開發機器):該選項代表典型個人用桌面工作站。假定機器上運行 著多個桌面應用程序。將MySQL服務器配置成使用最少的系統資源。
  • Server Machine (服務器):該選項代表服務器,MySQL服務器可以同其它應用程序一起 運行,例如FTP、email和web服務器。MySQL服務器配置成使用適當比例的系統資源。
  • DedicatedMySQL Server Machine (專用 MySQL 服務器):該選項代表只運行MySQL服務的服務器。假定運行沒有運行其它應用程序。MySQL服務器配置成使用所有可用系統資源。作為初學者,建議選擇【DevelopmentMachine】(開發者機器)選項,這樣占用系統的資源 比較少。

03 如何選擇存儲引擎

不同存儲引擎都有各自的特點,以適應不同的需求,如下表所示。為了做出選擇:

首先需 要考慮每一個存儲引擎提供了哪些不同的功能。如果要提供提交,回滾和崩潰恢復能力的事務安全(ACID兼容)能力,并要求實現并發控 制,InnoDB是個很好的選擇。如果數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較 高的處理效率;如果只是臨時存放數據,數據量不大,并且不需要較高的數據安全性,可以選擇將數據保存在內存中的Memory引擎,MySQL中使用該引擎作為臨時表,存放查詢的中間結果。如果只有INSERT和SELECT操作,可以選擇Archive引擎,Archive存儲引擎支持高并發的插 入操作,但是本身并不是事務安全的。Archive存儲引擎非常適合存儲歸檔數據,如記錄日志信 息可以使用Archive引擎。

使用哪一種引擎要根據需要靈活選擇,一個數據庫中多個表可以使用不同引擎以滿足各種性能和實際需求。

使用合適的存儲引擎,將會提高整個數據庫的性能。

04 如何查看默認存儲引擎?

使用SHOW ENGINES語句查看系統中所有的存儲引擎,其中包括默認的存儲引擎??梢钥闯鰜懋斍皵祿煜到y中有五種存儲引擎,默認是MyISAM。還可以使用一種直接的方法查看默認存儲引擎。執行結果直接顯示了當前默認的存儲引擎為MyISAM。

05 表刪除操作須謹慎

表刪除操作將把表的定義和表中的數據一起刪除,并且MySQL在執行刪除操作時,不會有 任何的確認信息提示,因此執行刪除操時,應當慎重。在刪除表前,***對表中的數據進行備份, 這樣當操作失誤時,可以對數據進行恢復,以免造成無法挽回的后果。

同樣的,在使用ALTER TABLE進行表的基本修改操作時,在執行操作過程之前,也應該 確保對數據進行完整的備份,因為數據庫的改變是無法撤銷的,如果添加了一個不需要的字段, 可以將其刪除;相同的,如果刪除了一個需要的列,該列下面的所有數據都將會丟失。

06 每個表中都要有一個主鍵嗎?

并不是每一個表中都需要主鍵,一般的,如果多個表之間進行連接操作時,需要用到主鍵。 因此并不需要為每個表建立主鍵,而且有些情況***不使用主鍵。

07 每個表都可以任意選擇存儲引擎嗎?

外鍵約束(FOREIGN KEY)不能跨引擎使用。MySQL支持多種存儲引擎,每一個表都可 以指定一個不同的存儲引擎,但是要注意:外鍵約束是用來保證數據的參照完整性,如果表之間 需要關聯外鍵,卻指定了不同的存儲引擎,這些表之間是不能創建外鍵約束的。所以說,存儲引 擎的選擇也不完全是隨意的。

08 帶AUTO_INCREMENT字段值是從1開始嗎?

默認的,在MySQL中,AUTO_INCREMENT的初始值是1,每新增一條記錄,字段值自動加1。設置自增屬性(AUTO_INCREMENT)的時候,還可以指定***條插入記錄的自增字段的 值,這樣新插入的記錄的自增字段值從初始值開始遞增,如在tb_emp8中插入***條記錄,同時 指定id值為5,則以后插入的記錄的id值就會從6開始往上增加。添加唯一性的主鍵約束時, 往往需要設置字段自動增加屬性。

09 TIMESTAMP與DATATIME兩者的區別

TIMESTAMP與DATETIME除了存儲字節和支持的范圍不同外,還有一個***的區別就是: DATETIME在存儲日期數據時,按實際輸入的格式存儲,即輸入什么就存儲什么,與時區無關; 而TIMESTAMP值的存儲是以UTC(世界標準時間)格式保存的,存儲時對當前時區進行轉換, 檢索時再轉換回當前時區。即查詢時,根據當前時區的不同,顯示的時間值是不同的。

10 選擇數據類型的方法和技巧

MySQL提供了大量的數據類型,為了優化存儲,提高數據庫性能,在任何情況下均應使用 最精確的類型。即在所有可以表示該列值的類型中,該類型使用的存儲最少。

  • 整數和浮點數

如果不需要小數部分,則使用整數來保存數據;如果需要表示小數部分,則使用浮點數類 型。對于浮點數據列,存入的數值會對該列定義的小數位進行四舍五入。例如如果列的值的范 圍為1〜99999,若使用整數,則MEDIUMINT UNSIGNED是***的類型;若需要存儲小數,則 使用FLOAT類型。浮點類型包括FLOAT和DOUBLE類型。DOUBLE類型精度比FLOAT類型高,因此,如要求存儲精度較高時,應選擇DOUBLE類型。

  • 浮點數和定點數

浮點數FLOAT,DOUBLE相對于定點數DECIMAL的優勢是:在長度一定的情況下,浮點 數能表示更大的數據范圍。但是由于浮點數容易產生誤差,因此對精確度要求比較高時,建議使 用DECIMAL來存儲。DECIMAL在MySQL中是以字符串存儲的,用于定義貨幣等對精確度要 求較高的數據。在數據遷移中,float(M,D)是非標準SQL定義,數據庫遷移可能會出現問題,***不要這樣使用。另外兩個浮點數進行減法和比較運算時也容易出問題,因此在進行計算的時候, 一定要小心。如果進行數值比較,***使用DECIMAL類型。

  • 日期與時間類型

MySQL對于不同種類的日期和時間有很多的數據類型,比如YEAR和TIME。如果只需要 記錄年份,則使用YEAR類型即可;如果只記錄時間,只須使用TIME類型。如果同時需要記錄日期和時間,則可以使用TIMESTAMP或者DATETIME類型。由于 TIMESTAMP列的取值范圍小于DATETIME的取值范圍,因此存儲范圍較大的日期***使用 DATETIME。

TIMESTAMP也有一個DATETIME不具備的屬性。默認的情況下,當插入一條記錄但并沒 有指定TIMESTAMP這個列值時,MySQL會把TIMESTAMP列設為當前的時間。因此當需要 插入記錄同時插入當前時間時,使用TIMESTAMP是方便的,另外TIMESTAMP在空間上比 DATETIME更有效。

CHAR與VARCHAR之間的特點與選擇

CHAR和VARCHAR的區別:

  • CHAR是固定長度字符,VARCHAR是可變長度字符;CHAR會自動刪除插入數據的尾部 空格,VARCHAR不會刪除尾部空格。
  • CHAR是固定長度,所以它的處理速度比VARCHAR的速度要快,但是它的缺點就是浪費 存儲空間。所以對存儲不大,但在速度上有要求的可以使用CHAR類型,反之可以使用 VARCHAR類型來實現。

存儲引擎對于選擇CHAR和VARCHAR的影響:

  • 對于MyISAM存儲引擎:***使用固定長度的數據列代替可變長度的數據列。這樣可以使 整個表靜態化,從而使數據檢索更快,用空間換時間。
  • 對于InnoDB存儲引擎:使用可變長度的數據列,因為InnoDB數據表的存儲格式不分固定 長度和可變長度,因此使用CHAR不一定比使用VARCHAR更好,但由于VARCHAR是按照 實際的長度存儲,比較節省空間,所以對磁盤I/O和數據存儲總量比較好。

ENUM 和 SET

ENUM只能取單值,它的數據列表是一個枚舉集合。它的合法取值列表最多允許有65 535 個成員。因此,在需要從多個值中選取一個時,可以使用ENUM。比如:性別字段適合定義為 ENUM類型,每次只能從’男’或’女’中取一個值。SET可取多值。它的合法取值列表最多允許有64個成員。

空字符串也是一個合法的SET值。 在需要取多個值的時候,適合使用SET類型,比如:要存儲一個人興趣愛好,***使用SET類型。ENUM和SET的值是以字符串形式出現的,但在內部,MySQL以數值的形式存儲它們。

BLOB 和 TEXT

BLOB是二進制字符串,TEXT是非二進制字符串,兩者均可存放大容量的信息。BLOB主 要存儲圖片、音頻信息等,而TEXT只能存儲純文本文件。應分清兩者的用途。 

帶你了解10個MySQL數據庫技巧(二)

責任編輯:龐桂玉 來源: 中國統計網
相關推薦

2018-10-24 15:55:19

MySQL數據庫技巧

2018-09-17 16:30:24

數據庫MySQL小技巧

2020-08-31 10:48:11

MySQL數據庫數據庫技巧

2023-02-28 07:34:12

數據庫索引

2018-03-12 10:15:10

前端Javascript反調試

2011-04-01 13:56:12

SQL Server數

2018-03-20 15:25:03

前端JavaScript Vue

2011-04-02 09:23:19

MySQL數據庫查詢效率

2021-09-15 09:51:36

數據庫架構技術

2018-09-08 17:17:52

數據庫MySQL小技巧

2023-10-09 18:13:14

MySQL數據庫查詢

2015-06-24 10:18:32

MySQLMySQL調優

2009-12-22 17:24:22

ADO.NET數據庫

2020-06-23 10:03:33

版本控制項目

2010-04-22 16:56:46

Oracle數據庫

2020-02-06 10:02:45

MySQL數據庫全局鎖

2010-05-31 17:15:39

MySQL數據庫

2011-03-10 11:17:03

數據庫設計技巧

2022-07-28 09:02:41

文件存儲系統

2020-10-08 14:32:57

大數據工具技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠骚 | 最新国产精品精品视频 | 久久精品色欧美aⅴ一区二区 | 中文字幕亚洲视频 | 久久性av | 91视视频在线观看入口直接观看 | 91av在线影院 | 中国一级特黄视频 | 欧美乱人伦视频 | 国产精品毛片 | 91一区二区 | 日韩中文字幕在线视频观看 | 亚洲欧美另类在线观看 | 国产成人99久久亚洲综合精品 | 99精品九九| 在线不卡视频 | 一区二区三区日韩精品 | 久久久久久一区 | 在线中文视频 | 91亚洲精选| 亚洲国产精品区 | 中文字幕人成乱码在线观看 | 久久伊人精品 | 久久精品一区二区三区四区 | 欧美极品少妇xxxxⅹ免费视频 | 亚洲欧美日韩一区二区 | 99视频在线免费观看 | 成人亚洲视频 | a免费视频 | 国产精品夜色一区二区三区 | 久久综合一区 | 欧美精品在线一区二区三区 | 国产精品18久久久久久白浆动漫 | 久久国产精品99久久久久久丝袜 | 久久精品久久综合 | 成人午夜网| 午夜久久久 | 午夜免费视频 | 亚洲欧美一区二区三区在线 | 久久综合久久综合久久 | 免费中文字幕日韩欧美 |