库表操做 - 存储引擎

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,往表内插入任何数据,都至关于丢入黑洞,表内永远不存记录
相关文章
相关标签/搜索