国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL的存儲引擎介紹與操作

來源:懂視網 責編:小采 時間:2020-11-09 13:36:40
文檔

MySQL的存儲引擎介紹與操作

MySQL的存儲引擎介紹與操作:通常意義上,數據庫也就是數據的集合,具體到計算機上數據庫可以是存儲器上一些文件的集合或者一些內存數據的集合。 我們通常說的MySql數據庫,sql server數據庫等等其實是數據庫管理系統,它們可以存儲數據,并提供查詢和更新數據庫中的數據的功能等等。根
推薦度:
導讀MySQL的存儲引擎介紹與操作:通常意義上,數據庫也就是數據的集合,具體到計算機上數據庫可以是存儲器上一些文件的集合或者一些內存數據的集合。 我們通常說的MySql數據庫,sql server數據庫等等其實是數據庫管理系統,它們可以存儲數據,并提供查詢和更新數據庫中的數據的功能等等。根

通常意義上,數據庫也就是數據的集合,具體到計算機上數據庫可以是存儲器上一些文件的集合或者一些內存數據的集合。 我們通常說的MySql數據庫,sql server數據庫等等其實是數據庫管理系統,它們可以存儲數據,并提供查詢和更新數據庫中的數據的功能等等。根

通常意義上,數據庫也就是數據的集合,具體到計算機上數據庫可以是存儲器上一些文件的集合或者一些內存數據的集合。

我們通常說的MySql數據庫,sql server數據庫等等其實是數據庫管理系統,它們可以存儲數據,并提供查詢和更新數據庫中的數據的功能等等。根據數據庫如何存儲數據和如何操作數據的實現機制不同,這些數據庫之間即有區別又有共同點。

MySql數據庫是開放源代碼的關系型數據庫。目前,它可以提供的功能有:支持sql語言、子查詢、存儲過程、觸發器、視圖、索引、事務、鎖、外鍵約束和影像復制等。在后期,我們會詳細講解這些功能。

同Oracle 和SQL Server等大型數據庫系統一樣,MySql也是客戶/服務器系統并且是單進程多線程架構的數據庫。

MySql區別于其它數據庫系統的一個重要特點是支持插入式存儲引擎。

什么是存儲引擎

存儲引擎說白了就是如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。因為在關系數據庫中數據的存儲是以表的形式存儲的,所以存儲引擎也可以稱為表類型(即存儲和操作此表的類型)。

在Oracle 和SQL Server等數據庫中只有一種存儲引擎,所有數據存儲管理機制都是一樣的。而MySql數據庫提供了多種存儲引擎。用戶可以根據不同的需求為數據表選擇不同的存儲引擎,用戶也可以根據自己的需要編寫自己的存儲引擎。

MySql中有哪些存儲引擎?

  1. MyISAM:這種引擎是mysql最早提供的。這種引擎又可以分為靜態MyISAM、動態MyISAM 和壓縮MyISAM三種:
  2. 靜態MyISAM:如果數據表中的各數據列的長度都是預先固定好的,服務器將自動選擇這種表類型。因為數據表中每一條記錄所占用的空間都是一樣的,所以這種表存取和更新的效率非常高。當數據受損時,恢復工作也比較容易做。
  3. 動態MyISAM:如果數據表中出現varchar、xxxtext或xxxBLOB字段時,服務器將自動選擇這種表類型。相對于靜態MyISAM,這種表存儲空間比較小,但由于每條記錄的長度不一,所以多次修改數據后,數據表中的數據就可能離散的存儲在內存中,進而導致執行效率下降。同時,內存中也可能會出現很多碎片。因此,這種類型的表要經常用optimize table 命令或優化工具來進行碎片整理。
  4. 壓縮MyISAM:以上說到的兩種類型的表都可以用myisamchk工具壓縮。這種類型的表進一步減小了占用的存儲,但是這種表壓縮之后不能再被修改。另外,因為是壓縮數據,所以這種表在讀取的時候要先時行解壓縮。
  5. 但是,不管是何種MyISAM表,目前它都不支持事務,行級鎖和外鍵約束的功能。
  6. MyISAM Merge引擎:這種類型是MyISAM類型的一種變種。合并表是將幾個相同的MyISAM表合并為一個虛表。常應用于日志和數據倉庫。
  7. InnoDB:InnoDB表類型可以看作是對MyISAM的進一步更新產品,它提供了事務、行級鎖機制和外鍵約束的功能。
  8. memory(heap):這種類型的數據表只存在于內存中。它使用散列索引,所以數據的存取速度非常快。因為是存在于內存中,所以這種類型常應用于臨時表中。
  9. archive:這種類型只支持select 和 insert語句,而且不支持索引。常應用于日志記錄和聚合分析方面。

當然MySql支持的表類型不止上面幾種。下面我們介紹一下如何查看和設置數據表類型。

存儲引擎的操作

1. 查看數據庫可以支持的存儲引擎

用show engines; 命令可以顯示當前數據庫支持的存儲引擎情況:

mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MyISAM | YES | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set

2. 查看表的結構等信息的若干命令

要查看表的定義結構等信息可以使用以下幾種命令:Desc[ribe] tablename; //查看數據表的結構

mysql> desc test;
+-------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+----------------+
| id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
+-------+-----------------------+------+-----+---------+----------------+
2 rows in set

show create table tablename; //顯示表的創建語句

mysql> show create table test;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test | CREATE TABLE `test` (
 `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(20) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set

show table status like 'tablename'\G顯示表的當前狀態值

mysql> show table status like 'test';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| test | InnoDB | 10 | Compact | 13 | 1260 | 16384 | 0 | 0 | 9437184 | 14 | 2010-01-21 08:46:03 | NULL | NULL | latin1_swedish_ci | NULL | | |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
1 row in set

綜上可見,后兩種方式都可以幫助我們查看某一表的存儲引擎類型(圖中已用紅色方框標出)。

3. 設置或修改表的存儲引擎

創建數據庫表時設置存儲存儲引擎的基本語法是:

Create table tableName(
columnName(列名1) type(數據類型) attri(屬性設置),
columnName(列名2) type(數據類型) attri(屬性設置),
……..) engine = engineName

例如,假設要創建一個名為user的表,此表包括id,用戶名username和性別sex三個字段,并且要設置表類型為merge。則可用如下的方式創建此數據表,

create table user(
 id int not null auto_increment,
 username char(20) not null,
 sex char(2),
 primary key(id)
) engine=merge

修改存儲引擎,可以用命令Alter table tableName engine =engineName。假如,若需要將表user的存儲引擎修改為archive類型,則可使用命令alter table user engine=archive。

小結

在本文中主要介紹了什么是MySql數據庫,并進一步引出了它的一個重要特性, 即插入式的多存儲引擎機制。然后,簡單介紹了什么是存儲引擎和MySql中幾種主要的存儲引擎。最后,介紹了如何查看數據庫支持的所有存儲引擎,如何查看數據庫表的存儲引擎類型及如何設置或修改表的存儲引擎類型。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQL的存儲引擎介紹與操作

MySQL的存儲引擎介紹與操作:通常意義上,數據庫也就是數據的集合,具體到計算機上數據庫可以是存儲器上一些文件的集合或者一些內存數據的集合。 我們通常說的MySql數據庫,sql server數據庫等等其實是數據庫管理系統,它們可以存儲數據,并提供查詢和更新數據庫中的數據的功能等等。根
推薦度:
標簽: 操作 介紹 的操作
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 看全色黄大色大片免费久久久 | 国产成人调教视频在线观看 | 欧美性第一页 | 欧美日韩一二 | 久久大香香蕉国产免费网vrr | 我被公睡做舒服爽中文字幕 | 高清国产美女一级a毛片 | 国产精品久久成人影院 | 久久精品最新免费国产成人 | 欧美成人精品一区二区三区 | 黄色小视频免费在线观看 | 久久一区二区精品综合 | 国产区免费在线观看 | 香蕉啪啪 | 91日韩 | 欧美日韩国产在线播放 | 国产区精品福利在线社区 | 国产69久久精品成人看小说 | 亚洲精品一二三 | 一级特黄女毛毛片 | 99热成人精品国产免国语的 | 久久久无码精品亚洲日韩按摩 | 亚洲va欧美 | 久久国产毛片 | 久久动态图 | 久久无码精品一区二区三区 | 久久精品国产免费一区 | 精品一区二区三区五区六区七区 | 欧美精品在线免费 | 国产一区二区三区久久精品 | 免费观看国产精品 | 日韩欧美在线第一页 | 国产成人精品第一区二区 | 国产在线一区视频 | 日韩不卡一区二区 | 精品一区二区三区免费观看 | 九九国产精品九九 | 广州一级毛片 | 亚洲精品国产字幕久久vr | 欧美日韩国产一区二区三区播放 | 免费观看亚洲视频 |