mysql基礎認識1

2022-05-29 22:57:11 字數 3208 閱讀 3521

一、配置檔案

服務端和客戶端的字元編碼不一樣時,可能會導致亂碼顯示等情況,為了統一兩端的字元編碼,可以通過配置檔案進行實現,當然譬如登入賬戶等資訊也可以進行配置,在啟動mysql服務端時會自動讀取配置檔案中的內容。配置檔案(my.ini)必須建在解壓的mysql檔案下,具體配置檔案的格式如下:

#

1. 在執行mysqld命令時,下列配置會生效,即mysql服務啟動時生效

[mysqld]

skip-grant-tables #

跳過授權表命令

port=3306character_set_server=utf8 #

設定字元編碼命令

default-storage-engine=innodb #

設定儲存引擎命令

innodb_file_per_table=1

#2. 針對客戶端命令的全域性配置,當mysql客戶端命令執行時,下列配置生效

[client]

port=3306default-character-set=utf8

user=root

password=123

#3. 只針對mysql這個客戶端的配置,2中的是全域性配置,而此處的則是只針對mysql這個命令的區域性配置

[mysql]

;port=3306;default-character-set=utf8

user=egon

password=4573

#!!!如果沒有[mysql],則使用者在執行mysql命令時的配置以[client]為準

無敵配置

二、儲存引擎

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)。在oracle 和sql server等資料庫中只有一種儲存引擎,所有資料儲存管理機制都是一樣的。而mysql資料庫提供了多種儲存引擎。使用者可以根據不同的需求為資料表選擇不同的儲存引擎,使用者也可以根據自己的需要編寫自己的儲存引擎。

1、mysql支援的儲存引擎

檢視mysql支援的儲存引擎的命令:show engines\g,檢視正在使用的儲存引擎命令:show variables like 'storage_engine%';。mysql預設使用的是innodb儲存引擎。

mysql支援的儲存引擎分別介紹如下:

#

innodb 儲存引擎

支援事務,其設計目標主要面向聯機事務處理(oltp)的應用。其

特點是行鎖設計、支援外來鍵,並支援類似 oracle 的非鎖定讀,即預設讀取操作不會產生鎖。 從 mysql 5.5.8版本開始是預設的儲存引擎。

innodb 儲存引擎將資料放在乙個邏輯的表空間中,這個表空間就像黑盒一樣由 innodb 儲存引擎自身來管理。從 mysql 4.1(包括 4.1)版本開始,可以將每個 innodb 儲存引擎的 表單獨存放到乙個獨立的 ibd 檔案中。此外,innodb 儲存引擎支援將裸裝置(row disk)用 於建立其表空間。

innodb 通過使用多版本併發控制(mvcc)來獲得高併發性,並且實現了 sql 標準 的 4 種隔離級別,預設為 repeatable 級別,同時使用一種稱為 netx-key locking 的策略來 避免幻讀(phantom)現象的產生。除此之外,innodb 儲存引擎還提供了插入緩衝(insert buffer)、二次寫(double write)、自適應雜湊索引(adaptive hash index)、預讀(read ahead) 等高效能和高可用的功能。

對於表中資料的儲存,innodb 儲存引擎採用了聚集(clustered)的方式,每張表都是按 主鍵的順序進行儲存的,如果沒有顯式地在表定義時指定主鍵,innodb 儲存引擎會為每一 行生成乙個 6位元組的 rowid,並以此作為主鍵。

innodb 儲存引擎是 mysql 資料庫最為常用的一種引擎,facebook、google、yahoo 等 公司的成功應用已經證明了 innodb 儲存引擎具備高可用性、高效能以及高可擴充套件性。對其 底層實現的掌握和理解也需要時間和技術的積累。如果想深入了解 innodb 儲存引擎的工作 原理、實現和應用,可以參考《mysql 技術內幕:innodb 儲存引擎》一書。

#myisam 儲存引擎

不支援事務、表鎖設計、支援全文索引,主要面向一些 olap 數 據庫應用,在 mysql 5.5.8版本之前是預設的儲存引擎(除 windows 版本外)。資料庫系統 與檔案系統乙個很大的不同在於對事務的支援,myisam 儲存引擎是不支援事務的。究其根 本,這也並不難理解。使用者在所有的應用中是否都需要事務呢?在資料倉儲中,如果沒有 etl 這些操作,只是簡單地通過報表查詢還需要事務的支援嗎?此外,myisam 儲存引擎的 另乙個與眾不同的地方是,它的緩衝池只快取(cache)索引檔案,而不快取資料檔案,這與 大多數的資料庫都不相同。

#ndb 儲存引擎

#memory 儲存引擎

正如其名,memory 儲存引擎中的資料都存放在記憶體中,資料庫重 啟或發生崩潰,表中的資料都將消失。它非常適合於儲存 oltp 資料庫應用中臨時資料的臨時表,也可以作為 olap 資料庫應用中資料倉儲的維度表。memory 儲存引擎預設使用雜湊 索引,而不是通常熟悉的 b+樹索引。

#infobright 儲存引擎

第三方的儲存引擎。其特點是儲存是按照列而非行的,因此非常 適合 olap 的資料庫應用。其官方**是 上面有不少成功的資料 倉庫案例可供分析。

#ntse 儲存引擎

網易公司開發的面向其內部使用的儲存引擎。目前的版本不支援事務, 但提供壓縮、行級快取等特性,不久的將來會實現面向記憶體的事務支援。

#blackhole

黑洞儲存引擎,可以應用於主備複製中的分發主庫。

引擎理論篇

2、儲存引擎的使用

方式一:在建表的時候指定

方式二:在配置檔案進行配置

[mysqld]

default-storage-engine=innodb

innodb_file_per_table=1

在配置檔案裡搞

認識MySql手記(1)

1 什麼是資料庫?計算機處理和儲存的一切資訊都是資料 計算機系統中一種用於訪問資料的程式 一種 計算機系統中有很多種能夠訪問資料的程式 各有所長和適用範圍 訪問 能儲存資料避免丟失 能按需求找到符合條件的資料 2 為什麼要使用資料庫 資料庫解決以下難題 較大資料量 事務控制 持久化和資料安全 併發訪...

Mysql (1)簡單認識Mysql

mysql 是一種關係型資料庫,預設埠號是3306 在5.5版之前,mysql的預設資料庫引擎是myisam,雖然效能極佳,而且提供了大量的特性,包括全文索引 壓縮 空間函式等,但myisam不支援事務和行級鎖,而且最大的缺陷就是崩潰後無法安全恢復。不過,5.5版本之後,mysql引入了innodb...

PADS學習1(基礎入門,認識PADS)

教材3 逆天pcb論壇 初步印象 1.支援中英文切換,無需漢化外掛程式。2.安裝後會有多個圖示,它是多個功能軟體的集合。3.相比較altium designer,pads的介面更為樸實直接,介面醜,功能強,執行速度快,敷銅效果好,引腳清晰。altium designer介面好,功能適中,上手容易,有...