天道酬勤,学无止境

【MySQL】运维面试必须要知道的InnoDB三大特性

innoDB有三大特性:插入缓冲(change buffer ) ,两次写(double write),自适应哈希索引(adaptive hash index)

插入缓冲

数据库最主要的性能问题是I/O, 插入缓冲的作用就是把普通索引上的DML操作从随机I/O,变为顺序I/O,从而提高I/O的效率。

原理: 先判断插入的普通索引页是否在缓冲池中,如果在就可以直接插入,如果不在就先放在 change buffer中,然后进行 change buffer和普通索引的合并操作,可以将多个插入合并到一个操作中,提高普通索引的插入性能。

两次写

插入缓冲带来的是针对普通索引插入性能上的提升,而两次写是保证写入的安全性,防止实例宕机时,innoDB发生数据页部分写的问题。

自适应哈希索引

innoDB有一个机制可以监控索引的搜索,如果innodb注意到查询可以通过建立索引得到优化就会自动完成这件事。

mysql> show variables like '%hash_index
%';
+----------------------------------+-------+
| Variable_name                    | Value |
+----------------------------------+-------+
| innodb_adaptive_hash_index       | ON    |
| innodb_adaptive_hash_index_parts | 8     |
+----------------------------------+-------+
2 rows in set

可以看到innodb_adaptive_hash_index 默认开启的,该参数的默认值为8,最大为512

本文转自 ID: 互联网老辛 更多内容关注公众号《极客运维之家》,扫码添加:

在这里插入图片描述

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 【MySQL】运维面试必须要知道的InnoDB三大特性
    innoDB有三大特性:插入缓冲(change buffer ) ,两次写(double write),自适应哈希索引(adaptive hash index)插入缓冲数据库最主要的性能问题是I/O, 插入缓冲的作用就是把普通索引上的DML操作从随机I/O,变为顺序I/O,从而提高I/O的效率。原理: 先判断插入的普通索引页是否在缓冲池中,如果在就可以直接插入,如果不在就先放在 change buffer中,然后进行 change buffer和普通索引的合并操作,可以将多个插入合并到一个操作中,提高普通索引的插入性能。两次写插入缓冲带来的是针对普通索引插入性能上的提升,而两次写是保证写入的安全性,防止实例宕机时,innoDB发生数据页部分写的问题。自适应哈希索引innoDB有一个机制可以监控索引的搜索,如果innodb注意到查询可以通过建立索引得到优化就会自动完成这件事。mysql> show variables like '%hash_index %';+----------------------------------+-------+| Variable_name | Value |+----------------------------------+-------+| innodb_adaptive_hash_index | ON || innodb_adaptive
  • 谈谈运维人员谨慎操作系统环境和管理
    很多时候,特别是初学者在搭建环境的时候,由于事先尝试了,导致软件残留,以至于部分软件安装失败。当然了,通常可以百度直接找到解决方案。不过呢?有一点需要注意的,运维同志们再安装软件时,哪怕是尝试,尽可能本地虚拟机环境尝试,千万不要在生产服务器上。卸载同删除一样,是一个极其危险的。有的时候一不小心咔擦,删错了东西,可能会导致系统没了,例如,记得刚刚做运维的时候,在公司电脑上,自己弄了几台虚拟机,其中有一台就是因为我不小心把boot给删了,导致很多东西都没了,不过幸好是本地虚拟机,如果是公司服务器,那就更糟糕了。因此,从那以后,我极其谨慎。不管是现在的公司兼任DBA也好或是运维。我一般情况下都使用的是非root权限,因为“人非圣贤”,有的时候工作太忙了,如果使用root权限较为频繁的话,那么可能会出现一些意外。在这里,有一点我要强调,每天备份很重要,使用shell脚本完成自动化备份。这样一来,确保数据尽可能的少损失。因为谁也不知道,明天会有哪些意外。既然意外具有突发性,那么时刻应对是最好的手段。当然了,服务器也不能确保一定是没问题的,尽管使用的是阿里云。但是前段时间阿里云被***,导致部分公司因为采用的是阿里云服务器,影响项目的正常运行。不过好在没有大的损失。下面首先说下卸载软件:1.卸载软件sudo apt-get remove 软件名例如:sudo apt -get remove
  • 看这里!Java面试你必须要知道的那些知识,帮你解决95%以上的问题!
    前言 我想对所有程序员说:除了看视频、做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!(本文内提到的书单笔者整理出了一份电子档作为分享,文末有免费获取方式) 网络框架、中间件、容器、并发编程、虚拟机等最近几年在互联网行业是越来越火热,Netty、Docker、并发编程、虚拟机也是程序员不得不掌握的技术点,掌握熟练这些技术点,必能让你在“互联网寒冬”的这场大战中立于不败之地!今天我们就来了解当下最流行的那些新兴技术。 第1章:Dubbo的简史、后续的规划和整体架构大图 ————Dubbo高性能RPC通信框架 1.1应用架构演进过程 1.2 Dubbo 简介 1.3 Dubbo总体大图 第2章:Dubbo的环境配置和基于Dubbo开发第一款应用程序 ————开发第一款Dubbo 应用程序 2.1配置开发环境 2.2基于XML配置实现 2.3基于注解实现 2.4基于API实现 2.5构建并运行 第3章:Dubbo内置的常用注册中心的实现原理 ————Dubbo注册中心 3.1注册中心概述 3.2订阅/发布 3.3缓存机制 3.4重试机制 3.5设计模式 第4章:Dubbo扩展点加载的原理和实现 ————Dubbo扩展点加载机制 4.1加载机制概述 4.2扩展点注解 4.3 ExtensionLoader 的工作原理 4.4扩展点动态编译的实现 第5章:Dubbo
  • 可以帮你搞定90%以上的面试题的一份MySQL书单
    经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。 但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,Java Web工程师已经不复存在,而取而代之的是Java后端工程师,也就是说,我们这些Java程序员不仅要写好业务代码,还要更多地掌握后端技术,除了数据库之外,像是缓存、消息队列、定时任务、微服务等技术也都是我们需要掌握的内容。 今天的这份书单我们就先从MySQL数据库谈起,介绍几本不错的MySQL书籍,其中包括sql基础、MySQL基础实践指南,以及进阶的一些书籍,包括如何管理和运维MySQL,以及最后一本介绍MySQL存储引擎的书籍,可以说是由浅入深,把学习MySQL必备的一些知识点都囊括进来了,相信这些书籍对你会有所帮助。 MySQL系列书单 了解数据库的第一步,最好的方法就是去使用它,无论数据库内部的原理有多复杂,我们平时使用的时候仍然还是在写sql,掌握好基础的sql语法,是最重要的第一步
  • Java学习笔记目录索引 (持续更新中)
    博主的其他笔记汇总 : 👉 学习数据结构与算法,学习笔记会持续更新: 《恋上数据结构与算法》学习Java虚拟机,学习笔记会持续更新: 《Java虚拟机》学习Java并发编程,学习笔记会持续更新: 《Java并发编程》学习Java设计模式,学习笔记会持续更新: 《Java设计模式》学习网络协议,学习笔记会持续更新: 《网络协议》 Java学习路线目录索引 👍 一、Java基础二、 MySQL数据库三、JDBC四、JavaWeb五、MyBatis & JPA六、Spring七、SpringMVC八、SpringBoot九、SpringCloud十、Redis十一、SpringSecurity、Shiro十二、消息中间件 RabbitMQ十三、ElasticSearch (转载系列)十四、开发工具的使用 附录 : 👉 Github最牛逼的Java知识汇总 : JavaGuide号称最强的Java知识总结 : ThinkWon 一、Java基础 跳转到目录 UML 一 类图关系 (泛化、实现、依赖、关联、聚合、组合)枚举类 — 概述、常用方法、自定义枚举类、Enum创建枚举类抽象类(abstract class)、接口(interface)String类 — 概述、String的性质、内存解析、常用API线程 — 创建方式、常用方法、线程安全问题、通信Java集合 — Collection
  • 90后小伙以这196道MySQL面试题,实力吊打面试官,生生挤进大厂
    前言 MySQL是一个关系型数据库管理系统, 由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational Database ManagementSystem,关系数据库管理系统)应用软件之一。在Java企业级开发中非常常用,因为MySQL是开源免费的,并且方便扩展。 下面给大家分享90后小伙分享的196道MySQL面试题及答案,希望大家能够喜欢~~~ 第二版: MySQL索引 6道 1、索引是什么? 2、素引能干什么? 3、素引的分类? 4、索引的底层实现 5、为什么索引结构默认使用B+Tree,而不是Hash,二叉树,红黑树? 6、为什么官方建议使用自增长主键作为索引? 7、简单总结下 第二版: MySql 50道- 1. MySQL 中有哪几种锁? 2. MySQL中有哪些不同的表格? 1、MyISAM- 2、Heap 3. Merge. 4、INNODB 5、ISAM- 3.简述在MySQL数据库中MyISAM和InnoDB的区别- 4. MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别? 1. read uncommited :读到未提交数据 2、read committed: 脏读,不可重复读- 3、repeatable read
  • 硬核干货合集!500+篇Java干货技术文章整理|资源|书单|工具|面试指南|强烈建议打开!
    今天给大家推荐一位在阿里做Java的朋友给大家,他是公众号【程序员书单】的作者黄小斜。 他的公众号【程序员书单】这两年来累积了200多篇优质原创文章,独家原创的系列文章有《五分钟学编程》系列,以及最近在大量创作的《程序员书单》系列文章,黄小斜在公众号里也写了很多使用的技术干货,他将其中的精华内容都整理到了这篇文章里。 该公众号专注于IT技术,致力于为程序员推荐好书。作者黄小斜是非科班出身的程序员,在自学编程的路上读过很多书,踩过很多坑,现在在阿里做研发,一直认为读书是程序员必不可少的好习惯之一。 程序员不止需要阅读技术书籍,更需要阅读更多其他领域的书籍,比如如何思考,如何阅读,如何管理时间和提供工作效率的书籍,在程序员不断精进的路上,需要更多书籍的陪伴。不管你是刚入门,在求职面试或者已经在工作,相信本公众号推荐的一些书籍都会帮助到你! 公众号里会不定期分享电子书、技术资料、源码等干货,同时也会经常进行送书活动,回馈一直支持本号的粉丝! 同时,他也在运营一个个人网站,分享大量Java技术干货文章: https://how2playlife.com/ 文章也会同步它我的GitHub: https://github.com/h2pl/Java-Tutorial 黄小斜的硬核原创 超硬核Java学习路线图 学习资源 实战项目汇总,看完以后不用再问我怎么学Java了! Java工程师学习指南
  • 云计算运维学习----InnoDB的核心特性:事务
    事务的定义 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务一个事务由一个或多个DML语句共同组成事务只和DML语句有关,或者说DML语句才有事务 tip:事务是MySQL等关系型数据库区别于NoSQL非关系型数据库的重要方面,是保证数据一致性的重要手段 tip:将本文使用到的名词归纳以下,方便大家阅读: 1、redo log:重做日志文件,对应ib_logfile0~1数据文件; 默认文件大小各50M,可通过"innodb_log_files_in_group"参数来控制重做日志文件的个数,若设置为4,则命名为ib_logfile0~3。 这些文件的写入是顺序、循环写的,logfile0写完了从logfile1继续写,logfile1写满了则从logfile0循环写。 2、redo buffer:redo内存缓冲区; 3、data buffer pool:数据和索引的缓冲区,对应ib_buffer_pool数据文件 4、undo log:回滚日志,对应ibdata1文件; 5、undo buffer:undo内存缓冲区 6、LSN:日志序列号 7、WAL(write ahead log):持久化;日志优先写的方式从而实现数据持久化 8、dirty page:脏页;内存中数据发生了修改,但是还没写入到磁盘之前,这种情况在的内存数据页叫做脏页 9、CKPT
  • 是人都想进大厂,你凭什么?(内附学习路线)
    我,一位双非渣本的大三学生,终于踏上了实习之旅,面试了不下三十场,虽然很菜,但是也相应地拿了一些 offer ,例如京东金融、人人车等五六家 offer 总结一下就是一个字:难。 没学历,技术还凑合,简历能过但是面试就有点困难。这期间收到了 N 个面试官的歧视,有些面试官感觉骨子里瞧不起我们这些双非的人。以下内容仅凭记忆回想起,还有一些必问的东西,总结在这里,希望能帮到大家! 开始之前,记得点赞收藏加关注哦 ,需要下载PDF版本和更多知识点、面试题的朋友可以点一点下方链接免费领取 链接:点这里!!! 799215493 暗号:CSDN 算法 这个真的就只能靠刷题,不敢说每家公司对于笔试的重视程度怎么样,反正笔试基本上是必须要过的一关,像字节跳动就对于算法十分钟爱,几乎每一面都会至少两到算法题,所以,要想进字节,至少俩月算法题刷起来。 不要扯什么算法不重要,程序猿搞不定算法就像厨子不会颠勺,司机不会挂挡。 队列数组栈链表树散列表(哈希表)堆图无序树:树中任意节点的子结点之间没有顺序关系、这种树称为无序树、也称为自由树有序树:树中任意节点的子结点之间有顺序关系、这种树称为有序树二叉树:每个节点最多含有两个子树的树称为二叉树完全二叉树满二叉树斜树平衡二叉树霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优二叉树红黑树 以及各种遍历方式、按层打印、统计距离等等 树是基¡
  • 2021年Java后台开发必会面试题
    看了一些牛客网上的Java开发面经,整理了一些常见常考的面试题,希望帮助到有需要的朋友。由于不是科班出身,个人只是学到了很基础的知识,后续依据面试经历会添加一些深入的问题。 大家在面试前可以看着问题,自己回答一遍,防止在面试时心里明白但是说不出来…(个人经验) IO部分: NIO 与IO 多线程部分: synchronized锁与reerentlock锁。 synchronized锁的优化:偏向锁、自旋锁、轻量级锁、重量级锁。以及锁升级的过程。 进程与线程的区别, 创建线程的三种方法。 线程池原理,线程池中重要的参数。 线程池的饱和策略。 共享锁与排他锁。公平锁与非公平锁。 线程的几种状态。 Sleep与wait的区别。 volatile与synchronized的内存语义。 Lock与synchroized区别。 AQS。 阻塞队列有哪些。 Notify与notifyAll的区别。 共享锁有哪几种。 死锁。 如何避免死锁。 Java基础部分: ==与equals的区别。 final、finally与finalize的区别 重写与重载的区别。 接口与抽象类的区别 如何理解面向对象。 什么是动态代理 两种动态代理的区别。 Static关键字。 JDK1.8新特性 多态。 Java容器部分: linkedlst与arraylist区别 Hashmap的底层结构
  • 面试官:InnoDB和MyISAM区别是什么?
    MyISAM是MySQL的默认数据库引擎(5.5版之前)。 虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。 不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为 InnoDB。 InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;InnoDB 最小的锁粒度是行锁
  • 【DB】数据库面试笔试题库及详解(小麦苗DBA宝典出品)--数据库运维宝典
    DB笔试面试历史连接--2018 ⊙ 【DB笔试面试436】Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?⊙ 【DB笔试面试435】SYSTEM和SYSAUX表空间存储的内容有哪些区别?若SYSAUX表空间占用过大则应该如何处理?⊙ 【DB笔试面试434】ORA-01578和ORA-26040块错误的原因有哪些?⊙ 【DB笔试面试433】在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?⊙ 【DB笔试面试432】在Oracle 12c中,在RMAN方面有哪些增强的新特性?⊙ 【DB笔试面试431】在视图上不能完成的操作是()⊙ 【DB笔试面试430】在一个表中可以建立()⊙ 【DB笔试面试429】MySQL的复制原理(Replication)以及流程是什么样的?⊙ 【DB笔试面试428】在Oracle中,实例恢复和介质恢复的区别是什么?⊙ 【DB笔试面试427】在Oracle中,数据文件OFFLINE之后必须要做的一件事是什么?⊙ 【DB笔试面试426】SQL Server有Linux版本吗?⊙ 【DB笔试面试425】SQL Server物理有哪三种类型的文件?⊙ 【DB笔试面试424】SQL Server哪类视图是可以更新的?请举例说明。⊙ 【DB笔试面试423】SQL
  • 【DB】数据库面试笔试题库及详解(小麦苗DBA宝典出品)--数据库运维宝典
    DB笔试面试历史连接--2018 ⊙ 【DB笔试面试436】Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?⊙ 【DB笔试面试435】SYSTEM和SYSAUX表空间存储的内容有哪些区别?若SYSAUX表空间占用过大则应该如何处理?⊙ 【DB笔试面试434】ORA-01578和ORA-26040块错误的原因有哪些?⊙ 【DB笔试面试433】在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?⊙ 【DB笔试面试432】在Oracle 12c中,在RMAN方面有哪些增强的新特性?⊙ 【DB笔试面试431】在视图上不能完成的操作是()⊙ 【DB笔试面试430】在一个表中可以建立()⊙ 【DB笔试面试429】MySQL的复制原理(Replication)以及流程是什么样的?⊙ 【DB笔试面试428】在Oracle中,实例恢复和介质恢复的区别是什么?⊙ 【DB笔试面试427】在Oracle中,数据文件OFFLINE之后必须要做的一件事是什么?⊙ 【DB笔试面试426】SQL Server有Linux版本吗?⊙ 【DB笔试面试425】SQL Server物理有哪三种类型的文件?⊙ 【DB笔试面试424】SQL Server哪类视图是可以更新的?请举例说明。⊙ 【DB笔试面试423】SQL
  • mysql面试题MVCC原理事务隔离级别
    mysql事务隔离级别可重复读面试题 熊大 话说今天漂亮的妹子给我发过一张图如下! 前提: > 这是InnoDB引擎下的默认隔离级别。 > 我们知道InnoDB默认的级别是rr也就是可`重复读` 在看这个值之前我们先了解个概念什么是MVCC MVCC多版本并发控制指的是 “维持一个数据的多个版本,使得读写操作没有冲突” 。 而快照读就是MySQL为我们实现MVCC理想模型的其中一个具体非阻塞读功能。而相对而言,当前读就是悲观锁的具体功能实现。 快照”在 MVCC 里是怎么工作的: 在可重复读隔离级别下,事务在启动的时候就“拍了个快照”。这个快照是基于整库的。当然它并不是把所有数据都拷贝出来得。 事实上InnoDB 里面每个事务有一个唯一的事务 ID,叫作 transaction id。它是在事务开始的时候向 InnoDB的事务系统申请的并且是按申请顺序严格递增的。 每行数据也是有多个版本的。每次事务更新数据的时候,都会生成一个新的数据版本,并且把 transaction id 赋值给这个数据版本的事务ID,记为 row trx_id。同时,旧的数据版本要保留,并且在新的数据版本中,能够有信息可以直接拿到它。 InnoBB也是利用每个数据有多个版本得特性(其实是记住了row_trx_id)实现了秒级快照读得能力。 在事务隔离级别得时候我们曾经谈过可重复读的隔离级别
  • 记得把每一次面试当做经验积累,经验分享
    1. Redis面试专题 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里以面试题的形式对 Redis 常见问题做一个总结,解决大家的知识盲点。 什么是Redis?简述它的优缺点?为什么要用 redis /为什么要用缓存为什么要用 redis 而不用 map/guava 做缓存?redis 和 memcached 的区别讲一下redis 常见数据结构以及使用场景分析redis怎么设置过期时间解释一下redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)如何应对缓存穿透和缓存雪崩问题说一下redis 事务Redis 常见异常及解决方案讲讲分布式环境下常见的应用场景讲讲Redis 集群模式如何解决 Redis 的并发竞争 Key 问题如何保证缓存与数据库双写时的数据一致性?说一下redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)单线程的 Redis 为什么这么快 1.1 Redis学习面试资料 1.2 Redis学习路线思维导图 数据库面试专题 随着工作经验的积累,我日益感觉到,对一名程序员来说,拥有良好的数据库设计能力是很重要的,甚至是最重要的
  • 近期想跳槽的程序员必看!2021最新京东Java面试题目
    前言 JVM对实际简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,其实我个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的Java开发来说,这是Java的基石。 其次,从各大招聘平台来看,一线互联网企业招聘需求(尤其是阿里巴巴),第一条就明确了要掌握JVM原理,因为JVM是中高级程序员必须要掌握的技术,学JVM也是为了更深入地理解Java以及更好的解决线上排查问题。 网上有关Java虚拟机的资料主要还是周志明的《深入理解Java虚拟机》,今天我就带大家来看看阿里云大师如何深入拆解Java虚拟机,让你更深入更通俗的理解JVM。 Java基础 1.Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用 7.==与equals的区别 8.Object有哪些公用方法 9.为什么Java里没有全局变量? 10.while循环和do循环有什么不同? 11.char型变量中能不能存储一个中文汉字?为什么? 12.public
  • 【DB】数据库面试笔试题库及详解(小麦苗DBA宝典出品)--数据库运维宝典
    DB笔试面试历史连接--2019 ⊙ 【DB笔试面试478】树形查询(层次查询)可用于哪些场景?⊙ 【DB笔试面试477】NULL有哪些注意事项?⊙ 【DB笔试面试476】DELETE、DROP和TRUNCATE的区别是什么?⊙ 【DB笔试面试475】分区表性能注意事项有哪些?⊙ 【DB笔试面试474】普通表转换为分区表有哪些办法?⊙ 【DB笔试面试473】分区表常用数据字典视图有哪些?⊙ 【DB笔试面试472】分区表在查询时如何优化?DB笔试面试历史连接--2018 ⊙ 【DB笔试面试471】如何查询某个分区是否是INTERVAL分区表?⊙ 【DB笔试面试470】分区表有什么优点?分区表有哪几类?如何选择用哪种类型的分区表?⊙ 【DB笔试面试469】Oracle中如何删除表中重复的记录?⊙ 【DB笔试面试468】分批插入、分批更新、分批删除、分批提交的写法有哪些?⊙ 【DB笔试面试467】Oracle中行列互换有哪些方法?⊙ 【DB笔试面试466】存储过程或函数如何返回集合类型?⊙ 【DB笔试面试465】如何使用批量动态SQL(FORALL及BULK子句的使用)?⊙ 【DB笔试面试464】动态SQL是什么?⊙ 【DB笔试面试463】如何将数字格式化显示并且依然返回数值类型?⊙ 【DB笔试面试462】如何将一个数字转换为字符串并且按照指定格式显示?⊙ 【DB笔试面试461
  • Java面试官:spring并发+JVM调优把我直接问懵了,建议细读
    Kubernetes简介 Kubernetes(简称K8S,K和S之间有8个字母)是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。 Kubernetes具有如下特性: 服务发现与负载均衡:无需修改你的应用程序即可使用陌生的服务发现机制。存储编排:自动挂载所选存储系统,包括本地存储。Secret和配置管理:部署更新Secrets和应用程序的配置时不必重新构建容器镜像,且不必将软件堆栈配置中的秘密信息暴露出来。批量执行:除了服务之外,Kubernetes还可以管理你的批处理和CI工作负载,在期望时替换掉失效的容器。水平扩缩:使用一个简单的命令、一个UI或基于CPU使用情况自动对应用程序进行扩缩。自动化上线和回滚:Kubernetes会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。自动装箱:根据资源需求和其他约束自动放置容器,同时避免影响可用性。自我修复:重新启动失败的容器,在节点死亡时替换并重新调度容器,杀死不响应用户定义的健康检查的容器。 MySQL 数据库最佳学习线路脑图: 一、 对MySQL 的认识 认识Mysql数据库 下载安装MySQL软件
  • 【DB笔试面试422】平时看哪些技术类的书籍?
    Q题目 平时看哪些技术类的书籍? A答案 根据个人的情况来回答即可。比如作者比较偏好Oracle数据库,曾经看过的书籍有《收获不止Oracle》、《基于Oracle的SQL优化》、《Oracle DBA工作笔记》、《RAC核心技术详解》等。除此之外,关于MySQL数据库,有《深入浅出MySQL数据库开发、优化与管理维护(第2版)》、《MySQL 技术内幕:InnoDB存储引擎》、《MySQL DBA工作笔记》、《MySQL管理之道:性能调优、高可用与监控》、《MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践》等。推荐大家去当当网购买,比较便宜。Oracle推荐的书籍入门:《Oracle数据库技术实用详解:教你如何成为10g OCP》《涂抹Oracle:三思笔记之一步一步学Oracle》原理和实践:《深入理解Oracle》《构建Oracle高可用环境》《Oracle DBA实战攻略:运维管理、诊断优化、高可用与最佳实践》《Oracle DBA工作笔记》SQL优化:《基于Oracle的SQL优化》《收获,不止SQL优化》《剑破冰山:Oracle开发艺术》内核技术:《Oracle RAC核心技术详解》《Oracle内核技术揭秘》《Oracle核心技术》备份恢复:《Oracle.Database.11g.RMAN备份与恢复》新特性:《Oracle 18c
  • 135面试必问:谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用
    更多面试题:面试题内容聚合 MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。 其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义。 这里简单总结一下这三者具有一定相关性的日志。 重做日志(redo log) 作用: 确保事务的持久性。 防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。 内容: 物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的。 什么时候产生: 事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行过程中,便开始写入redo log文件中。 什么时候释放: 当对应事务的脏页写入到磁盘之后,redo log的使命也就完成了,重做日志占用的空间就可以重用(被覆盖)。 对应的物理文件: 默认情况下,对应的物理文件位于数据库的data目录下的ib_logfile1&ib