mysql基础(三)存储引擎和锁-创新互联
存储引擎的概念:
成都创新互联专注于企业成都营销网站建设、网站重做改版、城中网站定制设计、自适应品牌网站建设、H5页面制作、商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为城中等各大城市提供网站开发制作服务。关系型数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,各种各样,不同的表结构意味着存储不同类型的数据,在数据的处理上也会存在着差异,对于mysql来说,它提供了多种类型的存储引擎,可以根据对数据处理的需求,选择不同的存储引擎,从而大限度的利用mysql的性能
mysql常见的存储引擎:(SHOW ENGINES; 查看mysql支持的存储引擎)
InnoDB:mysql5.5以后默认使用的储存引擎,是目前使用最为广泛的存储引擎
InnoDB的特性:
1、支持崩溃后安全恢复
2、InnoDB支持行级锁和外键约束
3、支持事务
4、支持聚集索引和辅助索引
5、支持热备份
6、支持行级锁
7、特别适合处理多重并发的请求,基于MVCC实现
数据文件:
InnoDB数据存储于表空间中:
两种表空间的类型:
1、所有InnoDB表的数据和索引存在在一个文件中,表空间文件定义在data目录下
数据文件名:ibdata1,ibdata2,...
默认使用这种表空间格式,但这种方式有很大缺陷,不建议使用
2、每个表使用一个独立的表空间文件,存储数据和索引
innodb_file_per_teble=ON #指定使用第二种表空间格式
使用独立表空间文件,每增加一张表就会增加两个数据文件
数据文件:
表名.ibd:用于存储数据和索引
表名.frm:用于存储表定义和属性
MyISAM:mysql5.5以前默认使用的存储引擎
MyISAM的特性:
1、支持全文索引,压缩
2、不支持事务
3、只能支持表级锁
4、不支持崩溃后安全恢复
5、支持温备份
适用场景:读多写少的环境(如:读写分离中的从库),且如果需要用到MyISAM可以考虑用Aria代替
Aria支持崩溃后安全恢复
MyISAM没创建一个表和生成三个数据文件
数据文件:位于data目录下
表名.frm:用于存储表定义和属性
表名.MYD:用于存储数据
表名.MYI:用于存储索引
BlackHole(黑洞引擎):
不实际存储数据,一般只用于记录二进制日志文件,多用与级联复制
Memory(基于内存的存储引擎):
Memory存储引擎,内存作为存储介质。提高数据库性能,但当mysqld崩溃时,所有的Memory数据都会丢失
使用场景:
1.目标数据较小,而且被非常频繁地访问
2.如果数据是临时的,而且要求必须立即可用,那么可以Memory存储引擎
3.存储在Memory表中的数据如果突然丢失,不会对线上服务产生负面影响
mysql锁:
锁的概念:
在数据库中,数据是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素
锁的级别:
表级锁:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突的概率高,并发度最低
行级锁:开销大,加锁慢;会出现死锁;锁定力度小,发生锁冲突的概率最低,并发度高
mysql本身在数据库级别实现了表级锁,存储引擎的锁只有存储引擎能够调用,用户无权操作
手动加锁:
语法
LOCK TABLES tbl_name ock_type READ|WRITE #加锁
UNLOCK TABLES #解锁
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:mysql基础(三)存储引擎和锁-创新互联
标题网址:http://cdiso.cn/article/ccdscs.html