返回顶部
首页 > 资讯 > 数据库 >MySQL优化(2):存储引擎和锁
  • 846
分享到

MySQL优化(2):存储引擎和锁

MySQL优化(2):存储引擎和锁 2019-11-02 09:11:05 846人浏览 无得
摘要

存储引擎: 早期的时候,存在如何选择MyISAM和Innodb? 现在,Innodb不断地发展完善,成为了主流的存储引擎。 因此5.5之后的Mysql,无脑选择Innodb即可。   mysql中的数据,索引以及其他的对象,是如何

MySQL优化(2):存储引擎和锁

存储引擎:

早期的时候,存在如何选择MyISAM和Innodb?

现在,Innodb不断地发展完善,成为了主流的存储引擎。

因此5.5之后的Mysql,无脑选择Innodb即可。

 

mysql中的数据,索引以及其他的对象,是如何存储的,是一套文件系统的实现。

MYsql支持很多的存储引擎,使用

SHOW ENGINES

即可查到全部的引擎

 

MyISAM和Innodb的比较:

存储文件的角度:MyISAM数据和索引分别存储,数据是.myd,索引是.myi;Innodb数据和索引集中存储为.ibd,不支持文件级别的移动

记录存储顺序的角度:MyISAM顺序存储,直接在表末尾插入记录;Innodb主键顺序存储,插入时需要排序操作,稍影响了效率

空间碎片的角度:MyISAM会产生;Innodb不会产生;空间碎片就删除了以前的记录,MyISAM将会空余下来一些空间

通俗来讲,就说原来存储文件100K,我删除了一部分记录后还是100K

优化MyISAM的空间碎片:

OPTIMIZE TABLE XXX;

外键和事务的角度:MyISAM不支持;Innodb支持,保证数据的完整性

全文索引的角度:MyISAM不支持;Innodb新版本支持,但是不支持中文,所以很鸡肋

的角度:MyISAM表级锁定;Innodb行级锁定,表级锁定,处理并发能力更强

 

总结:没有特殊需求,采用Innodb,数据基本都是读写的情况下,可以考虑采用MyISAM

 

锁:

避免资源争用的机制功能,多个任务同时使用一个资源,对该资源产生争用 

数据库中,多个任务对数据库进行CRUD操作就是资源争用

 

通俗解释原理:在某个任务使用资源的时候,标识出来,其他任务就不能同时操作,需要等待或者放弃

基本流程:先尝试加锁,如果锁定成功,那么使用该资源,使用完毕后释放;如果失败,进入操作队列,等待锁释放

 

锁的类型:

共享锁(读锁),排他锁(写锁)

不同类型的锁,导致并发操作是不一样的

 

读锁:共享读操作,阻塞写操作,不能执行写操作

写锁:写操作执行的时候独占资源,自己可读可写,其他任务不能读也不能写

MySQL执行任何SQL时,都会自动增加锁定,常规操作的情况下,不需要手动管理锁

 

这里的锁和上文存储引擎的行锁表锁不一样,是锁具体的实现方式

表级锁:操作会锁定整张表,无论是共享锁还是独占锁

行级锁:操作会锁定操作的记录

 

锁的语法:

表锁:READ是共享锁读锁,WRITE是独占锁写锁

LOCK TABLES [table-name] READ|WRITE;
UNLOCK TABLES;

行锁:第一个是共享锁,第二个是独占锁

SELECT * FROM TABLE [table-name] LOCK IN SHARE MODE;
SELECT * FROM TABLE [table-name] FOR UPDATE;

行锁独占锁只锁定了表的该行,其他任务可以读,不能更新锁定的行,行锁不是精确到某一行,而是一个间隙锁

这时候插入锁定的行的条件的记录也会失败(比如锁定ID小于20的行,插入ID18,也是锁定的)

您可能感兴趣的文档:

--结束END--

本文标题: MySQL优化(2):存储引擎和锁

本文链接: https://lsjlt.com/news/4896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL优化(2):存储引擎和锁
    存储引擎: 早期的时候,存在如何选择MyISAM和Innodb? 现在,Innodb不断地发展完善,成为了主流的存储引擎。 因此5.5之后的mysql,无脑选择Innodb即可。   MYSQL中的数据,索引以及其他的对象,是如何...
    99+
    2019-11-02
    MySQL优化(2):存储引擎和锁
  • MySQL 存储引擎和锁
    MySQL 存储引擎和锁===============================================================================存储引擎: &...
    99+
    2024-04-02
  • MySQL 存储引擎(2)
    首先我们带着下边三个问题来认识存储引擎 存储引擎在MySQL中的作用是什么? MySQL都有哪些存储引擎 SQL又与存储引擎有什么关系? 存储引擎在MySQL中的作用是什么? 顾名思义,存储引擎就是用于存储我们的数据的。在关系型数据库中...
    99+
    2016-06-21
    MySQL 存储引擎(2)
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2024-04-02
  • MYSQL存储引擎
    存储引擎 InnoDB      (1) InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加...
    99+
    2021-04-17
    MYSQL存储引擎
  • Mysql--存储引擎
      1.文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2.文件系统类型:ext2 3 4 ,xfs 数据 2.1 不管使用什么文件系统,数据内容不会变化 2.2 不...
    99+
    2021-09-03
    Mysql--存储引擎
  • MySQL 存储引擎
      存储引擎 DBMS使用存储引擎进行数据的创建、查询、更新、删除操作。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 MySQL提供了多种存储引擎,最常见的有3种。    ...
    99+
    2015-11-16
    MySQL 存储引擎
  • MySQL 存储引擎
    简介:存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。    常见分类有:InnoDB、MyISAM、Memory等; 一、InnoDB  ...
    99+
    2017-04-10
    MySQL 存储引擎 数据库入门 数据库基础教程 数据库 mysql
  • mysql-存储引擎
    存储引擎 完整的建表语句: CREATE TABLE dept ( DEPTNO int(2) NOT NULL, DNAME varchar(14) DEFAULT NULL, LOC varchar(13) DEF...
    99+
    2020-03-17
    mysql-存储引擎
  • MYSQL——存储引擎
       MYSQL的存储引擎1   MYSQL可以将数据以不同的技术存储在文件和内存中,这种技术就成为存储引擎2   每一种存储引擎使用不同的存储机制、索引技巧、锁定水...
    99+
    2024-04-02
  • Mysql -存储引擎
    1、存储引擎:是表级别的类型。 2、查看表存储引擎的方法: (1)、mysql> show table status in mydb where name='classes'\G; 1. ...
    99+
    2024-04-02
  • 【MySQL】存储引擎
    文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 MySQL 的核心组件之一,负责数据的存储和管...
    99+
    2023-08-16
    mysql 数据库 sql
  • MySql中的存储引擎和索引
    目录一、MySql的逻辑结构二、什么是存储引擎MySQL支持的存储引擎三、操作四、数据库的索引索引的分类五、索引操作一、MySql的逻辑结构 MySQL体系结构分为四层:分别是连接层...
    99+
    2022-11-13
    MySql存储引擎 MySql索引
  • MySQL 常见存储引擎的优劣
    目录查看所有存储引擎InnoDB 存储引擎MyISAM 存储引擎MEMORY 存储引擎查看所有存储引擎 我们可以通过 show engines 命令来看到我们的 mysql server 提供了哪些引擎: sh...
    99+
    2022-05-23
    MySQL 存储引擎 MySQL 存储引擎优劣
  • mysql federated存储引擎
    通过federated存储引擎建立远程连接表 # 开启federated存储引擎 SHOW ENGINES ; MyISAM YES InnoDB DEFAULT ... FEDERATED YES # 创建...
    99+
    2020-02-03
    mysql federated存储引擎
  • MySQL之存储引擎
    Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎,同一库中不同表可以使用不同的存储引擎,但建议要使用同一种存储引擎 MySQL体系结构 存储引擎 In...
    99+
    2024-04-02
  • MySQL的存储引擎
    1、存储引擎概念 • MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎 • 存储引擎是MySQL将数据存储在...
    99+
    2023-09-07
    mysql 数据库 java
  • MySQL—存储引擎(上)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 1). 连接层 2). 服务层 ...
    99+
    2023-09-07
    服务器 运维 mysql
  • MySQL的存储引擎InnoDB和MyISAM
    目录1. MyISAM底层存储1.1 MyISAM底层存储(非聚集索引方式)1.2 InnoDB底层存储(聚集索引方式)2. InnoDB与MyISAM简介3. MyISAM与Inn...
    99+
    2024-04-02
  • Case:MySQL Federated存储引擎引起的慢SQL优化
    这个案例并不是我遇到的,但是我的工作生产环境中有使用到federated存储引擎,所以记录一下。优化前有一条SQL部分截取内容如下,执行约268秒才能出结果:优化后从这条SQL的执行计划中可以看出来mego...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作