mysql 存储引擎 第三天

mysql 存储引擎
1.存储引擎的介绍?
是mysql数据库服务自带的功能程序,是表的处理器,不同的存储引擎有不同的功能数据存储方式。

mysql> create table t32(
-> name char(10),
-> age int(2)
-> )engine=myisam;
mysql> show create table t32;
mysql> show create table t33;

vim /etc/my.cnf
[mysqld]
default-storage-engine=存储引擎名
systemctl stop mysqld
systemctl start mysqld

show engines;查看

常用存储引擎的特点
myisam特点
独享表空间
表。frm 表结构 desc 表
表 MYI 表索引
表。MYD 表数据 select * from 表;
表 行级锁( 对表访问时,只给被访问的行加锁)
不支持事务,事务回滚,外键

锁 解决并发访问冲突问题。
查询操作 select * from 表;
写操作(insert delete update)

锁粒度
表级锁:一次直接对整张表进行加锁。
行级锁只锁定某一行。
页级锁:对整个页面(Mysql管理数据的基本存储单位)进行加锁。
锁类型:
1.写型锁:(互斥锁、排它锁):是独占锁,上锁期间其他线程不能读表或写表。
2.读型锁(共享锁):支持并发读。

InnoDB存储引擎特点
支持表级/行级锁定。
支持事务,事务回滚,支持外键
支持表空间
相关表文件 frm,ibd,

事务:一次数据访问从开始到结束的过程。
事务回滚: 访问过程中任意一步失败,把操作恢复到,操作之前的状态。

4.建表时如何决定表使用的存储引擎
处理写操作多的表适合用INNODB存储引擎
接收读操作多的表时候使用Myisam存储引擎。

事务日志文件
nt ~]# cd /var/lib/mysql
[root@client mysql]# ls
[root@client mysql]# du -sh ib_logfile*
ib_logfile1
ib_logfile0
ibdata1

mysql>create database userdb;
mysql> create table userdb.user(
-> name char(30),
-> password char(1),
-> uid int(2),
-> gid int(2),
-> comment varchar(50),
-> homedir varchar(60),
-> shell char(30),
-> index(name)
-> );

数据导入:把系统文件的内容存储到数据库服务器的表里。
mysql> show variables like"secure_file_priv";
mysql> system ls /var/lib/
mysql>system cp /etc/passwd /var/lib/mysql-files/ 拷贝
mysql> system ls /var/lib/mysql-files

mysql> load data infile
-> “/var/lib/mysql-files/passwd”
-> into table userdb.user
-> fields terminated by “:”
-> lines terminated by “\n”;
mysql> alter table userdb.user add id int(2) zerofill primary key auto_increment first; 增加行号。
mysql> select * from userdb.user;

更改搜索目录
[root@web1 ~]# vim /etc/my.cnf
ecure_file_priv="/mydata" 导入时搜索目录
[root@web1 ~]# mkdir /mydata
[root@web1 ~]# chown mysql /mydata/
[root@web1 ~]# setenforce 0
[root@web1 ~]# cp /etc/passwd /mydata/
[root@web1 ~]# systemctl stop mysqld.service
[root@web1 ~]# systemctl start mysqld
mysql> show variables like “secure_file_priv”
-> ;
mysql> alter table userdb.user
-> drop id; 删除行号。
重新导入数据。
mysql> load data infile
-> “/mydata/passwd”
-> into table userdb.user fields terminated by “:”
-> lines terminated by “\n”;

mysql> select name,uid,gid from userdb.user limit 3 into outfile “/mydata/a.txt”;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值