MySQL(二)
一、存储引擎
1、什么是存储引擎
存储引擎就是表的类型,针对不同的存储引擎,mysql会有不同的处理逻辑
2、存储引擎介绍
InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys(默认)
Supports transactions 事务
row-level locking 行级锁
foreign keys 外键(建立关系)
开启事务就是写sql(增删改查)语句,事务就是通常跟改有关的sql语句,也就是说开启事务就是修改表记录的sql语句,写完了后最后来一个关闭事务,这些sql语句要么同时成功,要么同时失败,其中有任意一条sql语句不成功,前面做成功的都不成功。比如交易,有3个人(甲乙丙),甲要给丙100元,中间需要通过乙(中间人,要抽提成哦!抽30吧!),最后甲付了100,乙拿了30,丙收了70,这就算交易成功,但凡乙没拿到30或丙没收到70,那么交易失败(写代码也一样),这一系列操作是不可分割的。
常用的存储引擎有:
1、create table t1(x int)engine=myisam;
速度快,没什么功能:会把表存成3个文件(t1.frm:表结构,t1.MYD:表数据,t1.MYI:表的索引信息)
create table t2(x int)engine=blackhole;
黑洞引擎(垃圾回收站),什么东西进去都没了:(t2.frm:表结构)
create table t3(x int)engine=memory;
关闭mysql,再进来,表里就没东西了(清空数据),数据是存在内存的:(t3.frm:表结构)
create table t4(x int)engine=innodb;
(t4.frm:表结构,t4.idb:innodb的数据)
二、配置文件管理
\s:查看MySQL当前客户端与服务端的编码情况
1、在MySQL安装目录下,找到mysql文件,在里面建一个my.ini的配置文件,在里面写配置
配置格式:
把客户端统称为client,没必要一个一个写,mysql下写的是哪个用户,哪个才是真正的root用户
[client]
user='root'
password='111111'
default-character-set=utf8
只针对mysql这个客户端的配置,mysqld中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
[mysql]
user='dragon'
password='123456'
default-character-set=utf8
default-storage-engine=innodb
执行下面的操作需把mysql服务停止后干掉(mysqld --remove)再启动
在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
[mysqld]
忘密码#: skip-grant-tables
character_set_server=utf8
#!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准