当前位置: 首页 > news >正文

网站做排名2015合川房产网

网站做排名2015,合川房产网,企业邮箱格式怎么填写才正确,哪些网站设计好目录 MySQL基础前言面试题MySQL 基础篇Mysql 的基础架构#xff1f;MySQL 的长连接和短连接长连接引起的异常重启问题#xff1f;说一下 MySQL 执行一条查询语句的内部执行过程#xff1f;MySQL 查询缓存的功能有何优缺点#xff1f;MySQL 的常用引擎都有哪些#xff1f;I… 目录 MySQL基础前言面试题MySQL 基础篇Mysql 的基础架构MySQL 的长连接和短连接长连接引起的异常重启问题说一下 MySQL 执行一条查询语句的内部执行过程MySQL 查询缓存的功能有何优缺点MySQL 的常用引擎都有哪些InnoDB vs MyISAMInnoDB 有哪些特性一张自增表中有三条数据删除了两条数据之后重启数据库再新增一条数据此时这条数据的 ID 是几自增主键能不能被持久化的问题为什么 InnoDB 不把总条数记录下来查询的时候直接返回呢InnoDB 和 MyISAM 执行 select count(*) from t哪个效率更高为什么在 InnoDB 引擎中 count(*)、count(1)、count(主键)、count(字段) 哪个性能最高MySQL 可以针对表级别设置数据库引擎吗怎么设置MySQL 中什么情况会导致自增主键不能连续什么是覆盖索引如果把一个 InnoDB 表的主键删掉是不是就没有主键就没办法进行回表查询了内存表和临时表有什么区别MySQL 中的字符串类型都有哪些VARCHAR 和 CHAR 的区别是什么分别适用的场景有哪些MySQL 存储金额应该使用哪种数据类型为什么limit 3,2 的含义是什么删除表的数据有几种方式它们有什么区别MySQL 中支持几种模糊查询它们有什么区别_count(column)_ 和 _count(*)_ 有什么区别MySQL 中内连接、左连接、右连接有什么区别 MySQL 日志篇MySQL 有哪些重要的日志文件redo log 和 binlog 有什么区别什么是 crash-safe什么是脏页和干净页什么情况下会引发 MySQL 刷脏页flush的操作MySQL 刷脏页的速度很慢可能是什么原因如何控制 MySQL 只刷新当前脏页MySQL 的 WAL 技术是解决什么问题的为什么有时候会感觉 MySQL 偶尔卡一下redo log 和 binlog 是怎么关联的?MySQL 怎么知道 binlog 是完整的?MySQL 中可不可以只要 binlog不要 redo logMySQL 中可不可以只要 redo log不要 binlog为什么 binlog cache 是每个线程自己维护的而 redo log buffer 是全局共用的事务执行期间还未提交如果发生 crashredo log 丢失会导致主备不一致呢在 MySQL 中用什么机制来优化随机读/写磁盘对 IO 的消耗以下说法错误的是以下说法正确的是有没有办法把 MySQL 的数据恢复到过去某个指定的时间节点怎么恢复 MySQL 性能优化MySQL 性能指标都有哪些什么是慢查询如何定位慢查询MySQL 的优化手段都有哪些查询优化优化索引的使用表结构设计优化表拆分读写分离MySQL 常见读写分离方案有哪些 MySQL 开放问题有一个超级大表如何优化分页查询查询长时间不返回可能是什么原因应该如何处理MySQL 主从延迟的原因有哪些如何保证数据不被误删MySQL 服务器 CPU 飙升应该如何处理MySQL 毫无规律的异常重启可能产生的原因是什么该如何解决 补充查询语句不同元素where、jion、limit、group by、having 等等执行先后顺序数据库三范式根据某个场景设计数据表MySQL 高并发环境解决方案Explain 性能分析 MySQL基础 前言 已经找到工作了分享秋招时的笔记。祝大家都能顺利找到自己心仪的工作。 面试题 MySQL 基础篇 Mysql 的基础架构 MySQL 分为 Server 层和存储引擎两部分Server 层包括连接器、查询缓存、分析器、优化器、执行器等 连接器管理连接和权限验证查询缓存命中直接返回结果分析器词法分析、语法分析优化器执行计划生成、索引选择执行器操作引擎、返回结果 存储引擎负责存储数据和提供读写 IO 接口其架构是插件式的支持 InnoDB、MyISAM、Memory 等多个存储引擎 MySQL 的长连接和短连接 长连接连接成功后如果客户端持续有请求则一直使用同一个连接短连接每次执行完很少的几次查询就断开连接下次查询再重新建立 长连接引起的异常重启问题 引起异常的原因MySQL 在执行过程中使用的内存是在连接对象里的这些资源在连接断开的时候才会释放解决方法 定期断开长连接重新初始化连接资源 说一下 MySQL 执行一条查询语句的内部执行过程 连接器 → 查询缓存 → 分析器 → 优化器 → 执行器 客户端先通过连接器连接到 MySQL 服务器连接器权限验证通过之后先查询是否有查询缓存如果有缓存则直接返回缓存数据如果没有缓存则进入分析器分析器会对查询语句进行语法分析和词法分析判断 SQL 语法是否正确如果查询语法错误会直接返回给客户端错误信息如果语法正确则进入优化器优化器对查询语句进行优化处理例如一个表里面有多个索引优化器会判别哪个索引性能更好优化器执行完就进入执行器开始执行查询语句直到查询出满足条件的所有数据然后返回 MySQL 查询缓存的功能有何优缺点 优点是效率高如果已经有缓存则会直接返回结果但是如果数据库表中数据和结构发生变化时增删改、表结构调整查询缓存将会失效导致缓存命中率比较低 MySQL 的常用引擎都有哪些 MySQL 的常用引擎有 InnoDB、MyISAM[maiˈzæm]、Memory所有数据放在内存中 等InnoDB 是默认的存储引擎 InnoDB vs MyISAM 最大的区别是 InnoDB 支持事务而 MyISAM 不支持事务InnoDB 支持崩溃后安全恢复MyISAM 不支持崩溃后安全恢复InnoDB 支持行锁MyISAM 不支持行锁只支持表锁InnoDB 支持外键MyISAM 不支持外键 InnoDB 有哪些特性 插入缓冲 对于非聚集索引页**不是直接提高性能两次写要进行写操作时不直接写硬盘而是先拷贝到内存中的两次写缓冲区然后把两次写缓冲区的内容分两次写到磁盘上自适应哈希索引为了提高性能会自动建立一些 hash 索引查找效率很高直接通过 hash 值定位到数据 一张自增表中有三条数据删除了两条数据之后重启数据库再新增一条数据此时这条数据的 ID 是几 MyISAM 存储引擎ID 为 4因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里面重启 MySQL 后不会丢失InnoDB 存储引擎 MySQL 8 以前: ID 为 2因为 InnoDB 表把自增主键的最大 ID 记录到内存中所以重启数据库后会使最大 ID 丢失MySQL 8.0 ID 为 4InnoDB 每次更改时当前最大计数器值写入重做日志 redo log 自增主键能不能被持久化的问题 MyISAM自增主键会持久化到数据文件中InnoDB 8 之前不会持久化从 8 开始自增主键会持久化到 redo log 为什么 InnoDB 不把总条数记录下来查询的时候直接返回呢 因为 InnoDB 支持事务即使是在同一时间进行查询得到的结果也可能不相同 InnoDB 和 MyISAM 执行 select count(*) from t哪个效率更高为什么 MyISAM 效率最高因为 MyISAM 内部维护了一个计数器直接返回总条数而 InnoDB 要逐行统计 在 InnoDB 引擎中 count(*)、count(1)、count(主键)、count(字段) 哪个性能最高 对于 count(字段) 来说遍历整张表取这个字段然后判断是否为 null不为 null 则加 1对于 count(主键 id) 来说遍历整张表取主键 id每次加 1对于 count(1) 来说遍历整张表不取值对于 count(_) 来说遍历整张表不取值直接按行累加 结果count(字段)count(主键 id)count(1)≈count(*) MySQL 可以针对表级别设置数据库引擎吗怎么设置 可以针对不同的表设置不同的引擎在 create table 语句中使用 engine引擎名比如 Memory来设置此表的存储引擎 MySQL 中什么情况会导致自增主键不能连续 唯一键冲突事务回滚 执行器执行插入自增键 1但是插入时发现唯一键冲突无法插入导致的不连续事务添加自增键 1但是由于事务回滚数据被清除导致的不连续 什么是覆盖索引 覆盖索引是指索引上的信息足够满足查询请求不需要回表取数据 如果把一个 InnoDB 表的主键删掉是不是就没有主键就没办法进行回表查询了 如果把主键删掉了那么 InnoDB 会自己生成一个 rowid 作为主键 内存表和临时表有什么区别 内存表指的是使用 Memory 引擎的表数据放在内存中重启会被清空临时表指的是使用 InnoDB 引擎或者 MyISAM 引擎的表数据放在磁盘上重启不会清空 MySQL 中的字符串类型都有哪些 CHARVARCHARBLOBTEXTLONGTEXTVARBINARYBINARY VARCHAR 和 CHAR 的区别是什么分别适用的场景有哪些 VARCHAR 的长度可变而 CHAR 是固定长度CHAR 比较适合长度较短的字段和固定长度的字段如身份证号、手机号等反之则适合使用 VARCHAR MySQL 存储金额应该使用哪种数据类型为什么 MySQL 存储金额应该使用 decimal 因为如果存储其他数据类型比如 float 有导致小数点后数据丢失的风险 limit 3,2 的含义是什么 去除前三条数据之后查询两条信息 删除表的数据有几种方式它们有什么区别 删除数据有两种方式delete 和 truncate它们的区别如下 delete 可以添加 where 条件删除部分数据truncate 不能添加 where 条件只能删除整张表delete 的删除信息会在 MySQL 的日志中记录而 truncate 的删除信息不被记录 因此 detele 的信息可以被找回而 truncate 的信息无法被找回truncate 因为不记录日志所以执行效率比 delete 快 MySQL 中支持几种模糊查询它们有什么区别 MySQL 中支持两种模糊查询regexp 和 like like 是模糊匹配regexp 支持正则表达式 count(column) 和 count(*) 有什么区别 count(column) 统计不会统计列值为 null 的数据count(*) 则会统计所有信息 MySQL 中内连接、左连接、右连接有什么区别 内连inner join— 把匹配的关联数据显示出来左连接left join— 把左边的表全部显示出来右边的表显示出符合条件的数据右连接right join— 把右边的表全部显示出来左边的表显示出符合条件的数据 MySQL 日志篇 MySQL 有哪些重要的日志文件 错误日志记录 MySQL 服务器运行过程中的错误信息常规查询日志记录了数据库执行的所有命令慢日志记录查询超过指定时间的语句redo log 重做日志一种缓存机制先将数据写入内存中再批量把内存中的数据统一刷回磁盘undo log 回滚日志存储日志被修改前的值bin log 二进制日志主要记录了对 MySQL 数据库执行更改的所有操作 redo log 和 binlog 有什么区别 redo log 是物理日志记录的是“在某个数据页上做了什么修改”binlog 是逻辑日志记录的是这个语句的原始逻辑redo log 是 InnoDB 引擎特有的binlog 是 MySQL 的 Server 层实现的所有引擎都可以使用redo log 是循环写的空间固定会用完binlog 是可以追加写入的 什么是 crash-safe crash-safe 是指发生宕机等意外情况下服务器重启后数据不会丢失的情况 什么是脏页和干净页 MySQL 为了操作的性能优化会把数据更新先放入内存中之后再统一更新到磁盘。 当内存数据和磁盘数据内容不一致的时候我们称这个内存页为脏页 内存数据写到磁盘后内存的数据和磁盘上一致我们称为“干净页” 什么情况下会引发 MySQL 刷脏页flush的操作 内存写满了这个时候就会引发 flush 操作InnoDB 中就是 redo log 写满系统的内存不足当需要新的内存页的时候就会淘汰一些内存页如果淘汰的是脏页这个时候就会触发 flush 操作系统空闲的时候MySQL 会同步内存中的数据到磁盘也会触发 flush 操作MySQL 服务关闭的时候也会刷脏页触发 flush 操作 MySQL 刷脏页的速度很慢可能是什么原因 在 MySQL 中单独刷一个脏页的速度是很快的如果发现刷脏页的速度很慢说明触发了 MySQL 刷脏页的“连坐”机制MySQL 的“连坐”机制是指当 MySQL 刷脏页的时候如果发现相邻的数据页也是脏页也会一起刷写到磁盘 如何控制 MySQL 只刷新当前脏页 在 InnoDB 中设置 innodb_flush_neighbors 这个参数的值为 0来规定 MySQL 只刷当前脏页MySQL 8 这个值默认是 0 MySQL 的 WAL 技术是解决什么问题的 A.防止误删除找回数据用的 B.容灾恢复为了还原异常数据用的 C.事务处理为了数据库的稳定性 D.为了降低 IO 成本 答D 题目解析WAL 技术的全称是 Write Ahead Logging预写式日志是先写日志再写磁盘的方式因为每次更新都写磁盘的话 IO 成本很高所以才有了 WAL 技术 为什么有时候会感觉 MySQL 偶尔卡一下 如果偶尔感觉 MySQL 卡一下可能是 MySQL 正在刷脏页正在把内存中的更新操作刷到磁盘中 redo log 和 binlog 是怎么关联的? 每个事务都有一个唯一的 XID用于标识事务 在 redo log 中事务的开始和结束会被记录这些记录包括 XID如果在 redo log 中发现只有 prepare 而没有 commit 的记录MySQL 会使用 XID 去 binlog 中找到相应的事务以确定该事务的最终状态然后提交或回滚事务 MySQL 怎么知道 binlog 是完整的? statement 格式的 binlog完整的标识是最后有 COMMIT 关键字row 格式的 binlog完整的标识是最后会有一个 XID 关键字 MySQL 中可不可以只要 binlog不要 redo log 不可以binlog 没有崩溃恢复的能力 MySQL 中可不可以只要 redo log不要 binlog 不可以原因有以下两个 redo log 是循环写不能保证所有的历史数据这些历史数据只能在 binlog 中找到binlog 是高可用的基础高可用的实现原理就是 binlog 复制 为什么 binlog cache 是每个线程自己维护的而 redo log buffer 是全局共用的 因为 binlog 是不能被打断的一个事务的 binlog 必须连续写因此要整个事务完成后再一起写到文件里redo log 并没有这个要求中间有生成的日志可以写到 redo log buffer 中在其他事务提交的时候可以被一起写到磁盘中 事务执行期间还未提交如果发生 crashredo log 丢失会导致主备不一致呢 不会因为这时候 binlog 也还在 binlog cache 里没发给备库crash 以后 redo log 和 binlog 都没有了从业务角度看这个事务也没有提交所以数据是一致的 在 MySQL 中用什么机制来优化随机读/写磁盘对 IO 的消耗 redo log 是用来节省随机写磁盘的 IO 消耗change buffer 主要是节省随机读磁盘的 IO 消耗 以下说法错误的是 A.redo log 是 InnoDB 引擎特有的它的固定大小的 B.redo log 日志是不全的只有最新的一些日志这和它的内存大小有关 C.redo log 可以保证数据库异常重启之后数据不丢失 D.binlog 是 MySQL 自带的日志它能保证数据库异常重启之后数据不丢失 答D 题目解析binlog 是 MySQL 自带的日志但它并不能保证数据库异常重启之后数据不丢失 以下说法正确的是 A.redo log 日志是追加写的后面的日志并不会覆盖前面的日志 B.binlog 日志是追加写的后面的日志并不会覆盖前面的日志 C.redo log 和 binlog 日志都是追加写的后面的日志并不会覆盖前面的日志 D.以上说法都正确 答B 题目解析binlog 日志是追加写的后面的日志并不会覆盖前面的日志redo log 日志是固定大小的后面的日志会覆盖前面的日志 有没有办法把 MySQL 的数据恢复到过去某个指定的时间节点怎么恢复 可以恢复只要你备份了这段时间的binlog同时做了数据库的定期备份可以把之前备份的数据库先还原到测试库从备份的时间点开始将备份的 binlog 依次取出来重放到要恢复数据的那个时刻这个时候就完成了数据到指定节点的恢复 MySQL 性能优化 MySQL 性能指标都有哪些 TPS每秒事务数QPS每秒请求次数IOPS每秒处理的 IO 请求次数 什么是慢查询 慢查询是 MySQL 中提供的一种慢查询日志它用来记录在 MySQL 中响应时间超过阀值的语句 如何定位慢查询 使用 MySQL 中的 explain 分析执行语句 explain select * from t where id5 MySQL 的优化手段都有哪些 查询优化优化索引的使用表结构设计优化表拆分读写分离 查询优化 避免 select *小表驱动大表使用连接代替子查询 优化索引的使用 尽量使用主键查询不做列运算查询语句尽可能简单不使用 select * 查询不用函数和触发器避免% 在前的查询避免在 where 子句中对字段进行表达式操作尽量使用数字型字段 表结构设计优化 使用简单的数据类型int 要比 varchar 类型在 MySQL 处理简单尽量使用 tinyint、smallint、mediumint 作为整数类型而非 int尽可能使用 not null 定义字段因为 null 占用 4 字节空间尽量少用 text 类型非用不可时最好考虑分表尽量使用 timestamp而非 datetime单表不要有太多字段建议在 20 个字段以内 表拆分 当数据库中的数据非常大时查询优化方案也不能解决查询速度慢的问题时可以考虑拆分表让每张表的数据量变小从而提高查询效率 垂直拆分数据表列的拆分水平拆分表的行数过大时拆分成多张表 读写分离 采用数据库集群的方案使用一个库作为主库负责写入数据其他库为从库负责读取数据这样可以缓解对数据库的访问压力 MySQL 常见读写分离方案有哪些 应用层通过应用层对数据源做理由来实现读写分离中间件通过 MySQL 的中间件做主从集群 MySQL 开放问题 有一个超级大表如何优化分页查询 数据库层面优化利用子查询优化超多分页场景利用子查询先快速定位需要获取的 id 段然后再关联查询程序层面优化可以利用缓存把查询的结果缓存起来 查询长时间不返回可能是什么原因应该如何处理 查询字段没有索引或者没有触发索引查询 以 % 开头的 like 查询数据类型出现隐式转换时不会使用索引不符合最左前缀原则如果查询条件有 or 分割如果有 or 的字段没有索引会引起全表查询如果 MySQL 认为使用索引会比全表查询更慢则不会使用索引 IO 压力大读取磁盘速度变慢内存不足网络速度慢查询出的数据量过大死锁 以上问题的解决方案如下 正确创建和使用索引把数据、日志、索引放到不同的 IO 设备上减少主数据库的 IO 操作。更换 MySQL 的磁盘为固态硬盘以提高磁盘的 IO 性能升级内存更换更大的内存提升网速升级带宽查询时只返回需要的字段。设置死锁的超时时间限制和避免死锁消耗过多服务器的资源 MySQL 主从延迟的原因有哪些 主库有大事务处理主库做大量的增、删、改操作主库对大表进行字段新增、修改或添加索引等操作主库的从库太多导致复制延迟主库读写压力大导致复制延迟从库之间的网络延迟 如何保证数据不被误删 权限控制与分配数据库和服务器权限避免数据库账号信息泄露业务代码不要使用明文保存数据库连接信息部署延迟复制从库万一误删除时用于数据回档且从库设置为 read-only确认备份制度及时有效启用 sql_safe_updates 选项不允许没 where 条件的更新/删除将系统层的 rm 改为 mv线上不进行物理删除改为逻辑删除开启 binlog方便追溯数据 MySQL 服务器 CPU 飙升应该如何处理 使用 show full processlist 查出慢查询为了缓解数据库服务器压力先使用 kill 命令杀掉慢查询的客户端然后再去项目中找到执行慢的 SQL 语句进行修改和优化 MySQL 毫无规律的异常重启可能产生的原因是什么该如何解决 可能是积累的长连接导致内存占用太多被系统强行杀掉导致的异常重启 定期断开空闲的长连接定期重新初始化连接资源 补充 查询语句不同元素where、jion、limit、group by、having 等等执行先后顺序 from: 需要从哪个数据表检索数据where: 过滤表中数据的条件group by: 如何将上面过滤出的数据分组having: 对上面已经分组的数据进行过滤的条件select: 查看结果集中的哪个列或列的计算结果order by : 按照什么样的顺序来查看返回的数据 数据库三范式根据某个场景设计数据表 第一范式所有字段值都是不可分解的原子值第二范式在一个数据库表中一个表中只能保存一种数据不可以把多种数据保存在同一张数据库表中第三范式数据表中的每一列数据都和主键直接相关而不能间接相关 MySQL 高并发环境解决方案 分库 分表 分布式 增加二级缓存 Explain 性能分析 查看执行计划使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句从而知道 MySQL 是如何处理 SQL 语句的分析查询语句或是表结构的性能瓶颈 秋招后端开发面试题系列目录 一、Java 1.1 Java基础上 1.2 Java基础下 1.3 Java集合 1.4 JavaIO 1.5 Java多线程上 1.6Java多线程下 二、JVM 2.1 JVM底层原理 2.2 垃圾回收器 2.3 垃圾回收算法 2.4 类加载机制 2.5 运行时数据区 三、MySQL 3.1 MySQL基础 3.2 事务 3.3 索引 3.4 锁机制 3.5 MVCC 四、Redis 4.1 Redis基础 4.2 缓存原理 五、中间件 5.1 RabbitMQ 六、Spring开源框架 6.1 Spring 6.2 Spring MVC 6.3 Spring Boot 6.4 MyBatis 七、操作系统 八、计算机网络 九、设计模式 十、微服务架构 十一、Spring Cloud分布式 11.1 分布式基础 11.2 Spring Cloud 11.3 GateWay 11.4 Nacos 11.5 OpenFeign 11.6 Ribbon 十二、算法 十三、项目
http://www.hkea.cn/news/14551592/

相关文章:

  • asp.net建立手机网站安卓 wordpress 源码
  • wordpress自动获取封面图seo营销名词解释
  • 人像摄影网站十大排名墨星写作网站app下载
  • 深圳网站制作公司售后服务江苏建站
  • 外贸网站哪家好免费的舆情网站app
  • 网站建设dqcxwordpress+外网无法访问
  • 深圳建设网站和公众号如何做软件类型的网站
  • 网站的逻辑结构发软文提高网站权重
  • 具体的网站建设不用网站怎么做落地页
  • 品牌网站建设小蝌蚪2a成都网站建设联系电话
  • 百姓网网站源码宣传网页设计
  • 做水果网站需要些什么手续怎么做公众号教程
  • 网站动态海报效果怎么做的网站定制开发多久时间
  • 备案网站的黑名单哪个平台视频资源多
  • 物流信息网站有哪些ip池代理
  • 网站如何做网页查询网站二级域名怎么设置
  • 那里做网站最好湖北省平安建设网站
  • 网站备案去哪注销公益网站建设 参考文献
  • 西安商城网站搭建毕业设计资料网站有哪些
  • 做网站 收费站群系统的优劣
  • 飓风算法恢复的网站阿里wordpress
  • ps 制作网站上海网站建设沪icp备
  • 购物网站建设ppt网站建设开发简介
  • 网站界面宽网站设计规范
  • 网站开发的目的意义特色创新百度竞价多少钱一个点击
  • 微网站建设 上海网页设计代码含js
  • 大型建筑网站设计公司详情热搜词排行榜
  • 网站开发重点难点分析免费注册企业
  • 如何找人做网站wordpress屏蔽国内ip
  • 什么做网站做个多少钱啊wordpress中文工具箱