1.mysql表级锁,行级锁,间隙锁的区别?

innodb引擎在无法通过索引查询数据时,默认使用表级锁对当前操作的表进行加锁,优点是加锁快,不会出现死锁,缺点是粒度过大,容易出现锁冲突;而如果可以通过索引查询时则使用行级锁,需要注意的是行级锁是基于索引产生的,所以锁住的是索引键而不是行记录,可能由于锁住的主键和非主键相互等待导致死锁

2.mysql的binlog,redo log,undo log,slow log,err log的作用、原理以及实现?

binlog二进制日志文件,作为操作语句对数据库的兜底,缓存到一定次数和大小同步到磁盘

redo log重做日志,在语句开始写入binlog时,处于prepare状态,待写入成功后,改为commit状态,将操作执行入数据库中

undo log 回滚日志,在写入bin log或redo log时出错,进行回滚的操作记录

slow log 慢查询日志

err log 错误日志

3.mysql的查询优化方法有哪些?

从select开始讲起,禁止使用*查询会使查询时索引失效导致全表查询;查询字段能通过复合索引覆盖,减少回表操作;依据最左匹配原则,查询字段与复合索引顺序保持一致,减少索引下推动作的产生;limit控制返回行数

关联from,inner join,left join减少表层级关联,尽可能保证在3层关联以内,第一张表的所属行数尽可能少,因为mysql解释器是自上向下、自左向右的

where语句的处理中同样需要复合上述条件,字段值和顺序尽可能和复合索引贴合,尽可能不适用函数和范围查询

4.mysql的索引有哪些,分别用在什么地方?

聚簇索引:innodb引擎的数据存储结构,每个非叶子节点只存储响应索引,在叶子节点才存储响应的数据包括主键、事务ID、回滚指针、非主键列

复合索引:除主键索引外,同样可以减少对全表查询的操作,原则上讲可定位大类的字段尽可能向左放,每次存放数据同时会维护复合索引消耗性能,所以尽可能减少个数

前缀索引:专门针对大字段查询

5.mysql的结构是怎么样的?

表>段>区>页>槽

区为1M,分为64页,每页16K,其中包括文件头,页头,虚记录,记录堆,页目录,自由空间链表,未分配空间,页尾,槽位9项数据,划分成多个组每个组即为一个槽,将地址偏移量存放数页目录中

【MYSQL的QA】相关推荐

  1. mysql集群安装(centos)

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! mysql集群安装(centos) mysql cluster : 1. 基于NDB Cluster 的分布式数据库系统 2. mysq ...

  2. Linux C连接Mysql

    首先确定系统上安装了GCC和MYSQL了没有, 如果没有先安装.CentOS用 yum -y install gcc yum -y install mysql-server 此外还必须安装mysql- ...

  3. mysql8.0 服务移除_Linux下彻底删除Mysql 8.0服务的方法

    观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 service mysql stop 使用 rpm 命令的方式查看 ...

  4. 虚拟机CENTOS7下 安装8.0版本MySQL MySQL主从配置详细~

    全部代码,写在后面吧! 全部的代码在后面. 1.安装mysql 先rz命令上传一下!出现未响应是很正常的情况!等会就好啦. ls查看一下,已经出现啦~ xz -d mysql-8.0.13-linux ...

  5. centos 安装mysql5.6.20_CentOS 7 安装MySQL 5.6遇到的疑难杂症小结

    在一测试服务器(CentOS Linux release 7.2.1511)上安装MySQL 5.6(5.6.19 MySQL Community Server)时遇到下面错误,这个是因为CentOS ...

  6. linux完美卸载mysql,Linux下彻底卸载mysql详解

    一.使用以下命令查看当前安装mysql情况,查找以前是否装有mysql rpm -qa|grep -i mysql 二.停止mysql服务.删除之前安装的mysql 删除命令:rpm -e –node ...

  7. mysql 7.4_CentOS 7.4 64位/ mysql

    1.安装mysql. 下载repo源  #  wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 安装repo ...

  8. mysql卸载后root还在_TMD终于把MySQL卸载掉了

    mysql卸载 坑爹啊 1.[代码]MySQL卸载 linux linux下开发,mysql数据库是经常用到的,对于初学者来说,在linux怎么安装卸载mysql数据库,也许可能比较痛苦,这里简单介绍 ...

  9. keepalived打造mysql主主高可用

    我的配置:  [root@mysql ~]# rpm -qa keepalived keepalived-1.2.13-5.el6_6.x86_64 [root@mysql ~]# cat /etc/ ...

最新文章

  1. GitHub推出云端IDE,几秒完成开发环境配置,今后可以在浏览器里使用VS Code了
  2. netapp学习(十三)---Snapshot基础知识(上)
  3. Android--制作开场动画/MediaPlayer.OnCompletionListener
  4. ubuntu登录界面循环登录
  5. JavaSE各阶段练习题----多线程
  6. 很少使用“ ControlFlowException”
  7. OpenCV人脸检测并把图片写成avi视频
  8. discuz x2.5 DIY模块模板语法详解
  9. node中操作MySQL
  10. eureka管理界面是多少_Eureka注册中心
  11. css中的.clearfix是什么意思?
  12. FTP/文件传输协议
  13. java 序列化理解_Java序列化的相关认知
  14. 利用CUDA查看多张显卡可用显存和总显存大小
  15. 使用Echarts将Excel数据转换成色彩地图HTML小工具
  16. USB之Cyusb3014芯片原理之四控制传输实现原理(十二) 2022-04-01
  17. mysql查看时区 go时区问题
  18. 绩效考核为何不得人心?
  19. 彩色流程图怎么做?这样的操作方法你尝试过吗?
  20. 使用J-OCTA软件探索锂离子电池新材料

热门文章

  1. 【vue源码解析】目录
  2. 有没有免费/便宜好用的云服务器推荐?
  3. java 获取两条经纬度线段的交点坐标工具类
  4. 06 工厂生产模式(创建型模式)
  5. 2023华为OD机试真题C++实现【密室逃生游戏】
  6. C#服务器配置时Token验证的解决方法
  7. 欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。
  8. 普鸥知识产权|开曼群岛商标注册流程
  9. Sklearn工具包
  10. Docker 入门看这一篇就够了!