mysql事务及搜索引擎

mysql事务后半部分

加快查询速度索引会自动排序,(升序)

select * from t1;全盘扫描

where可以索引查找show create table

索引是一个排序的列表,包含字段值和相应行数据的物理地址

事务是一种机制,一个操作序列(一组操作命令),事务会把所有命令当作一个整体提交或撤销操作,要么都执行要么都不执行

事物的acid特性:原子性,事务管理的基础。把事务看成一个不可分割的整体

一致性,事务管理的目的。让事务开始前和事务结束后保证数据的完整和一致

隔离性,事务管理手段。使多个事务并发操作同一个表数据时,每个事务都有各自的数据空间,通过隔离级别解决不同的一致性的问题。

隔离级别:未提交读RU,提交读RC,可重复读RR,串行读serializable(相当于报表级锁定)

持久性:事务管理的结果。当事务被提交后,命令修改的结果会被永久保存,且不会被回滚

begin;开启事务

commit;

rollback;

savepoint XX;

rollback to XX;

show variables like ‘autocommit’

set autocommit=0/1;

mysql 连接器

mysql事务及搜索引擎_第1张图片

 

存储引擎使mysql将数据存储在文件系统中的存储当时或者存储格式

常用引擎

myisam innodb

mysql数据库中的组件,负责实际的数据io操作

mysql系统中,存储引擎处于文件系统上,在数据

保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储

myisam

不支持事务,不支持外键,只支持全文搜索,数据文件和索引文件时分开保存的

适合查询,插入为主的应用

访问速度块,对事物王整形没有要求

分开存储的文件名和表明形同.frm文件存储表结构的定义

数据文件的扩展名为.myd(mydata)

索引文件的扩展名.myi(myindex)

myisam特点

 mysql事务及搜索引擎_第2张图片

 

静态表固定长度优点是存储迅速,容易缓存,出现故障易恢复。缺点占用空间大

动态表可变字段,记录不是固定长度,优待点占用空间小但是频繁的跟新和删除会产生碎片定期执行optimize table或myisamchk -r 改善性能

压缩表由myisamchk工具创建,占用空间小但是会损失性能

mysql事务及搜索引擎_第3张图片

 

一致性由事务保证

innodb

支持事务,支持4个事务隔离级别

mysql从5.5开始,默认的存储引擎为innodb

读写阻塞于事务级别有关

能非常高效的缓存索引和数据

表与主键以簇的方式存储

支持分区表,类似oracle数据库

支持外键约束,5.5前不支持,5.5后支持全文索引

对硬件资源要求还是比较高的场合

行级锁定,但要全表扫描任然会试表级锁定

select * from member

update table set a=1 where user like '%zhang%';

like模糊查询

select count(*) from table;全局扫描有myisam会预先保存好简单的行数 count(*)后有where时myisam也需要全局扫描

mysql事务及搜索引擎_第4张图片

innodb只有字段做索引是行级锁定,没有表级锁定 

mysql事务及搜索引擎_第5张图片

mysql事务及搜索引擎_第6张图片 

 innodb和myisam区别

特点上的区别

innodb 行锁定但是全表扫描,like ,count(*)仍然是表级锁定,读写并发能力较好,在5.5版本才支持全文索引,缓存能力较好可以减少磁盘io的压力 .ibd

myisam不支持事务,外键约束,支支持表级锁定,单独查询的或写入速度较快,读写并发能力交差,支持全文索引,占用的资源较少,适合服务器硬件较差的服务器使用

使用场景

区别innodb 适用于一致性要求较高,数据频繁更新的高并发读写业务场景。表数据和索引是存储在一个表中

myisam适用于不需要事务处理,单独的插入或查询数据的业务场景。数据文件和索引文件是分开存储的

mysql事务及搜索引擎_第7张图片

 

show engins;

csv行的内容以,相间阁

show create table member

show table status from kgc查看库中所有表的状态

show table status from kgc where name='member'\G查看

修改alter table member engine = myisam

你可能感兴趣的:(数据库,mysql,sql)