庫表操做 - 存儲引擎

1、庫操做:
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
   1.系統數據庫:
        information_schema: 虛擬庫,不佔用磁盤空間,存儲的是數據庫啓動後的一些參數,如用戶表信息、列信息、權限信息、字符信息等
        performance_schema: MySQL 5.5開始新增一個數據庫:主要用於收集數據庫服務器性能參數,記錄處理查詢請求時發生的各類事件、鎖等現象
        mysql: 受權庫,主要存儲系統用戶的權限信息
        test: MySQL數據庫系統自動建立的測試數據庫
    2.建立數據庫:
        help create           # 查看幫助信息
        help create database
        # https://dev.mysql.com/doc/refman/5.6/en/create-database.html
        ...

        語法:
            create database 數據庫名 charset utf8;
            create database db1 charset utf8;
        命名規則:
            能夠由字母、數字、下劃線、@、#、$
            區分大小寫
            惟一性
            不能使用關鍵字如 create select
            不能單獨使用數字
            最長128位
    3.數據庫相關操做:
        查看數據庫
            show databases;
            show create database db1;
            select database();
        選擇數據庫
            use db1;
        刪除數據庫
            drop database db1;
        修改數據庫
            alter database db1 charset utf8;
            alter database db1 charset gbk;html

2、表操做:
1.什麼是存儲引擎:
mysql中創建的庫===>文件夾
庫中創建的表===>文件

存儲引擎說白了就是如何存儲數據、如何爲存儲的數據創建索引和如何更新、查詢數據等技術的實現方法。
由於在關係數據庫中數據的存儲是以表的形式存儲的,因此存儲引擎也能夠稱爲表類型(即存儲和操做此表的類型)
存儲引擎:表的類型 (表就是文件) 有不一樣的文件類型 .mp4 .txt

                 

  
2.mysql支持得存儲引擎:
mysql> show engines; # #查看全部支持的存儲引擎
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

mysql> show variables like 'storage_engine%'; #查看正在使用的存儲引擎
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | InnoDB |
+----------------+--------+
1 row in set (0.00 sec)

一、InnoDB 存儲引擎 默認是InnoDB
支持事務,其設計目標主要面向聯機事務處理(OLTP)的應用。
二、MyISAM 存儲引擎
不支持事務、表鎖設計、支持全文索引,主要面向一些 OLAP 數 據庫應用。
在 MySQL 5.5.8 版本以前默認的存儲引擎(除 Windows 版本外)。
三、NDB 存儲引擎
NDB 存儲引擎是一個集羣存儲引擎,相似於 Oracle 的 RAC 集羣。
四、Memory 存儲引擎
Memory 存儲引擎中的數據都存放在內存中,數據庫重 啓或發生崩潰,表中的數據都將消失。
五、Infobright 存儲引擎
第三方的存儲引擎。其特色是存儲是按照列而非行的,所以很是 適合 OLAP 的數據庫應用。
其官方網站是 http://www.infobright.org/,上面有很多成功的數據 倉庫案例可供分析。
六、NTSE 存儲引擎
網易公司開發的面向其內部使用的存儲引擎。
七、BLACKHOLE
黑洞存儲引擎,能夠應用於主備複製中的分發主庫。3.使用存儲引擎:        1.建表時指定            create table t1(id int,name char)            create table t2(id int,name char)engine=innodb;            create table t3(id int,name char(6))engine=memory;        2.在配置文件中指定默認的存儲引擎            /etc/my.cnf            [mysqld]            default-storage-engine=INNODB            innodb_file_per_table=1        3.查看            [root@egon db1]# cd /var/lib/mysql/db1/            [root@egon db1]# ls            db.opt  t1.frm  t1.ibd  t2.frm  t2.ibd        4.練習            建立四個表,分別使用innodb,myisam,memory,blackhole存儲引擎,進行插入數據測試                [db1]> create table t1(id int)engine=innodb;                [db1]> create table t2(id int)engine=myisam;                [db1]> create table t3(id int)engine=memory;                [db1]> create table t4(id int)engine=blackhole;                [db1]> exit            [root@egon db1]# ls /var/lib/mysql/db1/ #發現後兩種存儲引擎只有表結構,無數據                db.opt  t1.frm  t1.ibd  t2.MYD  t2.MYI  t2.frm  t3.frm  t4.frm            查看mysql版本:                status;   # \s                select version();                    mysql> select version();                    +-------------------------+                    | version()               |                    +-------------------------+                    | 5.7.21-0ubuntu0.16.04.1 |                    +-------------------------+                    1 row in set (0.00 sec)            重啓mysql服務:                service mysqld restart                service mysql restart (5.5.7版本命令)                或者:                    /etc/init.d/mysql restart            中止:                service mysql stop                或者:/etc/init.d/mysql stop            啓動:                service mysql start                或者:                    /etc/init.d/mysql start            #memory,在重啓mysql或者重啓機器後,表內數據清空            #blackhole,往表內插入任何數據,都至關於丟入黑洞,表內永遠不存記錄
相關文章
相關標籤/搜索