设为首页 收藏本站
查看: 862|回复: 0

[经验分享] mysql基础(三)存储引擎和锁

[复制链接]

尚未签到

发表于 2018-10-9 07:24:04 | 显示全部楼层 |阅读模式
  存储引擎的概念:
  关系型数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,各种各样,不同的表结构意味着存储不同类型的数据,在数据的处理上也会存在着差异,对于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#解锁


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-618444-1-1.html 上篇帖子: mysql 多实例安装 下篇帖子: dovecot+mysql-12764272
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表