Mysql 存储引擎

Mysql的存储引擎有InnoDB,MyISAM,Memory,CSV,BlackHole,Archive,其中最常用的是InnoDB,MyISAM,Memory,下面将粗略介绍这几种常用存储引擎。

1、InnoDB

Mysql5.1之后,开始支持InnoDB.

Mysql5.5之后后,默认的存储引擎是InnoDB。

InnoDB支持事务和行级锁,支持热备份,支持主键索引和唯一索引,但不支持全文索引。

InnoDB实现了四个标准的隔离级别,其默认级别是REPEATABLE READ(可重复读)。

应优先选择InnoDB作为存储引擎,公司现在使用的存储引擎基本上为InnoDB。

2、MyISAM

Mysql5.1及以前的版本,默认的存储引擎都是MyISAM.
MyISAM提供了大量的特性,包括全文索引、压缩、空间函数等。但MyISAM不支持事务和行级锁,而且不支持崩溃后的安全恢复,因此MyISAM通常不是最佳选择。

3、Memory

所有数据都保存在内存中,访问速度比较快,但在重启后会丢失所有数据。Memory表是表级锁,并发写入的性能较低。

不支持BLOB或TEXT类型的列,并且每行的长度是固定的,浪费部分内存。

MySQL在执行查询的过程中需要使用临时表来保存中间结果,内部使用的临时表就是Memory表。

如果中间表结果太大超出了Memory表的限制,或者含有BLOB或TEXT字段,则临时表会转换成MyISAM表。

 

与本文相关的Mysql命令

1、Windows启动Mysql

命令行输入以下命令:

net start mysql

2、Windows登陆Mysql

命令行输入以下命令:

-u后面是用户名,-p后面是密码

mysql -uroot -proot

3、查Mysql版本

mysql> status;
--------------
D:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe  Ver 14.14 Distrib 5.5.10, for Win32 (x86)
Connection id:          4
Current database:       test
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.5.10-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 hour 36 min 49 sec
Threads: 3  Questions: 38  Slow queries: 0  Opens: 40  Flush tables: 1  Open tables: 0  Queries per second avg: 0.6

4、查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)

5、查表使用的存储引擎

mysql> show create table student;
CREATE TABLE `student` (
  `student_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  `sex` varchar(10) COLLATE utf8_bin DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `birth_day` date DEFAULT NULL,
  `name_index` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`student_id`),
  KEY `student_name_index` (`name_index`(10))
) ENGINE=InnoDB AUTO_INCREMENT=1345038 DEFAULT CHARSET=utf8 COLLATE=utf8_bin |

也可以通过以下命令查询,有些字段被我删减。

mysql> show table status like 'student';
Name    | Engine | Version | Row_format | Rows    | Avg_row_length | Data_length | Index_length | Data_free | Auto_increment
student | InnoDB |      10 | Compact    | 1023687 |            113 |   116064256 |     40992768 |  79691776 |        1345038




 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值