首页 > 代码库 > Day3-
Day3-
Mysql体系结构
Mysql存储引擎
存储引擎——处理不同类型表的处理器
????????不同的存储引擎有不同的功能和存储方式
????????在建表时可以设置表使用的存储引擎
????????若不设置,新建的表使用mysql服务默认的存储引擎。
Show engines????查看当前数据库服务支持的存储引擎
Innodb????|default????Supports transactions, row-level locking, and foreign keys
????.frm????表结构????????.ibd表记录和表索引????????学名:共享表空间
Myisam????不支持外键,不支持事务
.frm????表结构 ????.myd????表记录????????.myi????表索引????????独享表空间
修改mysql配置文件
修改 默认存储引擎
?
事务——一次sql操作从开始到结束过程
事务回滚——若一次SQL操作没有成功,就把数据还原到操作之前的状态——例:向银行转账,若转账不成功,回滚
锁机制——可锁记录或锁表
解决并发访问冲突问题
锁的范围取决于存储引擎
读锁(共享锁)
写锁(排它锁????互斥锁)
?
Mysiam????表锁????????查看比较多的使用该引擎
Innodb????????行锁????????写操作比较多的使用该引擎
?
Mysql体系结构——8个
1连接池(内存????CPU????进程数)
客户端要提供连接工具——语言连接数据库
2管理工具????提供mysql数据库服务的软件自带的命令
3 SQL接口——传递SQL命令给MYSQLD进程
4分析器——SQL命令格式是否正确,对操作操作的库、表是否有使用权限
5优化器——优化执行的SQL语句,让系统使用最少的资源去执行SQL命令
6缓存区——在mysql数据库服务时,会划分一定的系统物理内存给mysql服务做缓存
7储存引擎????myisam????innodb????
8文件系统——存储设备/var/lib/mysql/数据库名/表.*
?
数据导入——把系统文件的内容保存到数据库服务器的表里
????可以把系统用户信息保存数据库服务器的表里????
mysql> create table user_user(user varchar(30),password char(1),uid int(2),gid int(2),comment varchar(50),home varchar(50),shell varchar(50),index(user) );
mysql> load data infile ‘/etc/passwd‘ into table user_user fields terminated by ‘:‘ lines terminated by ‘\n‘;
mysql> alter table user_user add id int(6) primary key auto_increment first;
数据导入命令
LOAD DATA INFILE ‘文件名‘ INTO TABLE????表名????FIELDS TERMINATED BY ‘分隔符‘????LINES TERMINATED BY ‘\n‘;
导入数据时注意事项
????表中字段的个数要和文件中列的个数相等
????字段的类型要与文件中列的值匹配
?
数据导出——把数据库表里的记录保存到系统文件里
mysql> select * from 表名 into outfile ‘导出的文件位置‘;
默认以TAB键为间隔可以使用
后面加????????fields terminated by "符号"——————这是设置列分隔的
后面加????????lines terminated by "符号";——————这是设置行分隔的
mysql> select * from user_user into outfile ‘/tmp/user.txt‘;
mysql> select * from user_user into outfile ‘/tmp/user.txt‘ fields terminated by "#";
注意事项
导出的内容由SQL查询语句决定若不指定路径,默认会放在执行导出命令时所在库对就的数据库目录下。就确保mysql用户对目标文件夹有写权限
?
表记录和基本操作
select 查
select 字段名列表 from 表名;
select 字段名列表 from 数据库名.表名where 条件表达式;
字段名列表
* ????所有字段
字段名
字段名1、字段名2、字段名…
条件表达式
?
?
?
insert增
delete删
update改
Day3-