当前位置:Gxlcms > 数据库问题 > mysql基础(三)存储引擎和锁

mysql基础(三)存储引擎和锁

时间:2021-07-01 10:21:17 帮助过:3人阅读

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 #解锁




本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1932021

mysql基础(三)存储引擎和锁

标签:mysql

人气教程排行