MYSQL数据库引擎
Posted kakajiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL数据库引擎相关的知识,希望对你有一定的参考价值。
一、mysql数据库引擎
1、概述
Mysql数据库有两种重要的存储引擎
MyISAM和InnoDB
数据库最早只有MyISAM引擎。
在Mysql5.5版本之前的默认引擎都是MyISAM。
MyISAM引擎对读数据的支持非常好,在早期的网站结构中,数据交互的部分很少,用户上网几乎也是看数据,很少向数据库里写数据。
2、特点
a、MyISAM引擎的特点
(1)不支持事务===>不支持复杂功能、对系统资源占用少
(2)读的速度特别快,读写互斥(读时候不能写,写时候不能读)==>读好,写支持不好
(3)一旦写入数据,引擎直接对数据表进行表级别锁定,其他用户不能再读写==>写慢
(4)可以缓存索引,但是不缓存数据==>内存占用小
b、InnoDB类型的数据表特点
(1)支持事务、支持复杂功能==>对服务器资源要求高
(2)一旦写入数据,行级别锁定,单表支持并发写==>写支持好
(3)可以缓存索引,也能缓存数据==>内存占用大,对服务器要求高
(4)读写阻塞与实务隔离级别相关(开事务就读写阻塞,不开就不阻塞)
(5)行级锁定,全表扫描仍会表级锁定(就是模糊过滤,工作中要禁止的,用索引)
3、查看数据库和表配置的引擎
查看库的引擎:
show engines;
方法一:查看表的引擎:
show table status from 库名 where name=’表名’G;
系统表是MyISAM引擎
show table status from mysql where name=’user’G;
方法二:查看表引擎方式(建表时候看引擎)
show create table client.user_info G;
4、配置引擎
方法一:
alter table 库名.表名 engine=引擎
alter table client.user engine=innodb;
方法二:
修改my.cnf的default-storage-engine 为引擎
vim /etc/my.cnf
方法三:
create table 建立表时设置engine=引擎
use auth;
create table id(id int) engine=myisam;
方法四:
mysql_convent_table_format --user=root --password=密码 --sock=文件路径/mysql.sock --engine=引擎 库名 表名
mysql_convent_table_format --user=root --password=123123 --sock=/var/lib/mysql/mysql.sock --engine=myisam client user_info
以上是关于MYSQL数据库引擎的主要内容,如果未能解决你的问题,请参考以下文章