• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: 久久影院综合精品| 国产精品无码无片在线观看| 亚洲视频在线精品| 亚洲国产精品欧美日韩一区二区| 婷婷精品国产亚洲AV麻豆不片| 精品人妻少妇一区二区| 久久伊人精品青青草原高清| 久久精品午夜一区二区福利| 欧美国产精品va在线观看| 国产成人精品综合在线观看| 国产精品视频分类一区| 欧美jizzhd精品欧美| 亚洲av无码成人精品国产| 精品国产福利盛宴在线观看| 国产精品久久网| 99热亚洲色精品国产88| 精品视频一区二区三区| 免费人成在线观看欧美精品| 久久99精品国产自在现线小黄鸭| 精品久久久久久无码中文字幕| 亚洲av永久无码精品秋霞电影影院 | 国产叼嘿久久精品久久| 久久久久女人精品毛片| 亚洲国产精品VA在线看黑人| 老子影院午夜精品无码| 国产精品亚洲欧美大片在线观看 | 日产欧美国产日韩精品| 一区二区三区精品高清视频免费在线播放 | 四虎影院国产精品| 日本一区二区三区精品国产 | 日本精品久久久久久久久免费| 国自产精品手机在线观看视| 国产精品成人国产乱一区| 2020最新久久久视精品爱| 亚洲国产精品久久| jizz国产精品| 国产一区二区精品久久岳| 国产精品狼人久久久久影院| 国产精品尹人在线观看| 久久成人精品| 亚洲情侣偷拍精品|