mysql 学习

本贴最后更新于 2292 天前,其中的信息可能已经时移世易

1.MySQL 中 myisam 与 innodb 的区别?

mysam 没有事务,innodb 有事务.

myisam 查询速度快,myisam 适合读多写少没有事务的业务场景。myisam 有空间函数。

mysam 的数据文件有三个,索引和数据是分开存储的。而 innodb 只有两个

mysam 支持数据文件压缩,innodb 支持独立表空间情况下对数据文件的清理操作。

mysam 没有外键

2.redo 和 undo 干什么用的?

undo 日志用来记录事务未提交前的数据修改值,可以用来 rollback.redo 日志用来记录事务提交后还没有写入 data file 前的值,可以用来恢复事务提交后的数据修改值。

3.hash 索引是什么,什么存储引擎支持? 有什么优缺点?

和 hashmap 类似,键值映射,通过键快速找到值。

innodb,memory 引擎支持

等值查找很快,不支持范围查询。不支持排序

4.btree 和 b+tree 有什么样的区别,对于范围检索来说,b+tree 好在哪里?

btree 可以在分支节点上存储索引值的同时存储数据值。

b+tree 在叶子节点上存储数据值,在分支节点上存储索引值。

b+ 优点:

数据都存储在叶子节点,通过指针相连,范围查询时直接检索叶子节点。不必遍历分支节点。

分支节点不存储数据,可以存储更多的索引,减少树的高度。

5.全文索引是怎么回事?

查询的数据字段都是索引,并且对索引表进行全表扫描。

6.MySQL 中 InnoDB 支持的四种事务隔离级别是什么? 有什么区别

未提交读,已提交读,可重复读,串行化

未提交读和已提交读的区别在于事务读取数据的时机不同,前者能读取其他事务未提交的数据修改,而后者不能,所以前者不能避免脏读的情况。

可重复读和前面两个的区别在于,它读取到的数据在事务未提交之前都是同一个值,避免了不可重复读的问题。

串行化和前面三者的区别在于,事务读取数据的时候直接锁表。解决了幻读的问题。

7.MYSQL 中的间隙锁是怎么回事,有几种方式产生间隙锁?

间隙锁是一个特殊的行锁,它不是锁住一行,而是一个范围的行。

范围删除,范围更新,锁表

8.能谈谈 mysql 实现读写分离的原理吗,和存储引擎有什么关系?

主节点数据更新后,从节点通过日志监测工具监测到主节点数据日志的变化,将变化写入中继文件,然后完成一次数据同步后,再将这些改变写入日志文件。

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    692 引用 • 535 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    171 引用 • 513 回帖 • 1 关注

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    56 引用 • 25 回帖 • 5 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 232 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 816 关注
  • 电影

    这是一个不能说的秘密。

    122 引用 • 608 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 603 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 735 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 3 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 4 关注
  • OnlyOffice
    4 引用 • 24 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 738 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    36 引用 • 155 回帖 • 1 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 4 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 音乐

    你听到信仰的声音了么?

    61 引用 • 512 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 698 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1707 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 401 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 27 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 140 回帖
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 617 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 2 关注
  • Access
    1 引用 • 3 回帖 • 5 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 488 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 165 关注