首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL时候用表锁,啥时候用行锁?

    MySQL Innodb 的锁可以说是执行引擎的并发基础了,有了锁才能保证数据的一致性。众所周知,我们都知道 Innodb 有全局锁、表级锁、行级锁三种,但你知道什么时候会用表锁,什么时候会用行锁吗?...虽然对 MySQL 的知识点挺熟悉的,但一开始看到这个问题,树哥也是有点懵,我还真没从这个角度去思考过。大家可以暂时 1 分钟思考下答案,后面我将带大家弄清楚这个问题。...下面就让我带着大家来温习下 MySQL 的锁吧! 对于数据库而言,其锁范围可以分为: 全局锁 表级锁 行级锁 全局锁 全局锁就是对整个数据库实例加锁。...MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。...而全局锁、表级锁,则是 MySQL 层面就支持的锁。 那么什么时候会使用行级锁呢? 当增删改查匹配到索引时,Innodb 会使用行级锁。 如果没有匹配不到索引,那么就会直接使用表级锁。

    1.5K20

    什么时候 MySQL 查询会变慢?

    查询流程 开始今天的内容之前,先来和小伙伴们大概捋一捋 MySQL 的查询流程。...如果在查询的时候使用了唯一性索引的话,那么查询到记录之后 MySQL 就停止扫描了;但是如果查询的时候使用的是非唯一性索引的话,那么扫描到第一条记录之后,还会继续向后扫描,直到扫描到第一条不满足条件的记录为止...返回需要的列 查询的时候尽量避免 select *,这个问题在之前的文章中松哥其实和大家聊过了,因为很多时候我们在前端其实并不需要使用到那么多字段,可能只是为了查询简单,直接来一个 select *,有时候列数和数据总量都比较少的时候...直接从索引中过滤出来想要的值并返回给客户端,这种时候,过滤虽然发生在 MySQL Server 层,但是由于不需要回表,效率也还过得去。...从数据表中查询到相应的记录,然后在 MySQL Server 层进行过滤,过滤的同时可能还需要回表,此时效率就会低一些。

    17020

    MySQLMySQL安装

    MySQL安装 配置内置环境 输入 ps axj | grep mysql 查看系统当中是否有已经安装好的MySQL ---- 输入 ps ajx | grep mariadb 查看系统是否有 mariadb...mysqld 采用yum的方式,获取到MySQL安装包 ,一般都是.rpm ---- 输入 rpm -qa 获取所有的安装包 ---- 输入 rpm -qa | grep mysql 获取到mysql...查看系统中默认支持的yum源 发现其中并没有MySQL的yum源,若直接安装,可能安装不上 yum源 的安装 输入 rpm -ivh mysql-community-release-el7.rpm...源 来选择比较适配系统的mysql ---- 输入 yum install -y mysql-community-server 指令 yum会按照yum源的配置自动安装mysql 注意事项 安装期间可能会存在红色框的问题...-y mysql-community-server 指令 ,进行重新安装 最终出现 Complete 即 安装成功 检测是否安装成功 输入 ls /etc/my.cnf 指令 若 存在 /etc

    52841

    MySQL 8】MySQL 5.7即将停止维护,是时候看看MySQL 8了!

    MySQL 8新特性 选择MySQL 8的背景:MySQL 5.6已经停止版本更新了,对于 MySQL 5.7 版本,其将于 2023年 10月31日 停止支持。后续官方将不再进行后续的代码维护。...:https://www.mysql.com/why-mysql/benchmarks/mysql/ 除了高性能之外,MySQL 8还新增了很多功能,我找了几个比较有特点的新特性,在这里总结一下。...8 安装完成后,进入命令行用的还是临时密码,并未修改root的初始密码,需要修改密码才允许操作。...再来看一下MySQL优化器怎么处理这两种索引的: 隐藏索引 可以看到,隐藏索引在查询的时候并不会用到,就跟没有这个索引一样,那么 「隐藏索引」 的用处到底是个什么玩意呢?...「函数索引的实现原理:」 函数索引在MySQL中相当于新增了一个列,这个列会根据函数来进行计算结果,然后使用函数索引的时候就会用这个计算后的列作为索引,其实就是增加了一个虚拟的列,然后根据虚拟的列进行查询

    3.3K10

    故障分析 | MySQL 数据库升级后,数据库怎么卡住

    ---- 问题背景: 第一天晚上 MySQL 数据库升级,版本从5.6.22到5.7.32,升级过程很顺利,业务验证正常。 两天后业务人员反馈数据库卡住了,sql 执行下去数据库没反应。...现象: 连上数据库看看发现了什么…… mysql> show processlist; +-------+-------------+---------------------+-------+----...mysql> select * from performance_schema.metadata_locks; Empty set (0.00 sec) 返回空,没有查到 MDL 锁相关信息,检查环境发现...mysql> show full processlist; | Id | User | Host | db | Command...官方文档:https://dev.mysql.com/doc/refman/5.7/en/derived-table-optimization.html 解决方案 是在数据库中关闭这个优化器配置 是改写业务

    5K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券