Mysql是一个开放源代码的数据库管理系统(DBMS),它是由Mysql AB公司开 发、发布并⽀持的。Mysql是⼀个跨平台的开源关系数据库管理系统,⼴泛地应⽤ 在Internet上的中⼩型⽹站公司开发中
创建数据库
if not exists:在创建数据库之前进行判断,该数据库已有的不执行操作,该数据库没有执行操作
character set:指定数据库的字符集
collate:指定校验集
语法格式:CREATE DATABASE db_name;
db_name为自己起的数据库名,如果已存在这个数据库则会创建出错
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> show create database test;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
删除数据库
将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一起被删除。
语法格式:DROP DATABASE db_name;
db_name要删除的数据库名称,如果没有这个数据库,则删除出错
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
数据库存储引擎
数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使⽤数据引擎 进⾏创建、查询、更新和删除数据操作。
MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理⾮事务安全 表的引擎。在MySQL中,不需要在整个服务器中使⽤⼀种引擎,针对具体要求可以 对每⼀个表使⽤不同的存储引擎。MySQL5.5⽀持的存储引擎有:InnoDB、 MyISAM、Memory等。
查看引擎:SHOW ENGINES\G
mysql> show engines\G
*************************** 1. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
9 rows in set (0.00 sec)
查看默认存储引擎:show variables like 'default_storage_engine';
mysql> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)
存储引擎的选择
如果要提供提交、回滚和崩溃恢复能⼒的事务安全能⼒,并要求实现并发控 制,InnoDB 是个很好的选择
如果数据表主要⽤来插⼊和查询记录,则 MyISAM 引擎能提供较⾼的处理效率
如果只是临时存放数据,数据量不⼤,并且不需要较⾼的安全性,可以选择将 数据保存在内存中的 Memory 引擎,MySQL 使⽤该引擎作为临时表,存放查 询的中间结果
如果只有 INSERT 和 SELECT 操作,可以选择 Archive 引擎,⽀持⾼并发的插 ⼊操作,如记录⽇志信息可以使⽤ Archive 引擎
功能 | MyISAM | Memory | InnoDB |
存储限制 | 256TB | RAM | 64TB |
支持事务 | No | No | Yes |
⽀持全⽂索引 | Yes | No | No |
⽀持数索引 | Yes | Yes | Yes |
⽀持哈希缓存 | No | Yes | No |
⽀持数据缓存 | No | N/A | Yes |
⽀持外键 | No | No | Yes |