mysql数据库实用教程答案 |
您所在的位置:网站首页 › mysql数据库教程课后题答案 › mysql数据库实用教程答案 |
前言
数据库相关的面试题早已成为了一线互联网大厂面试的家常菜,如果你对数据库不太熟悉,我劝你不要轻易面试大厂。那么,为什么数据库成了大厂面试的家常菜呢?主要原因当然还是海量数据。 无论对于刚入行的小白还是有几年Java开发经验的从业而言,面试不仅是你必须要面对的事情,更是你升职加薪的一个途径。许多朋友面试了几家公司也没拿到一个满意的薪资,究其根还是在于自己的知识不够系统化,太凌乱。针对性的温故知新往往能达到事半功倍的效果。 在这里我总结一线互联网大厂java面试中常问的“数据库”问题,由于过多答案文字仅以图片展示,所有内容已总结成文档在文末有领取方式! 为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。 数据库出现性能瓶颈,对外表现有几个方面: 大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。 SQL 操作变慢如果数据库中存在一张上亿数据量的表,一条 SQL 没有命中索引会全表扫描,这个查询耗时会非常久。 存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈最简单粗暴的办法就是提升机器性能,但是通过这种方法成本和收益投入比往往又太高了,不划算,所以重点还是要从软件角度入手。 数据库相关优化方案数据库优化方案很多,主要分为两大类:软件层面、硬件层面。 软件层面包括:SQL 调优、表结构优化、读写分离、数据库集群、分库分表等; 硬件层面主要是增加机器性能。 SQL 调优SQL 调优往往是解决数据库问题的第一步,往往投入少部分精力就能获得较大的收益。 SQL 调优主要目的是尽可能地让那些慢 SQL 变快,手段其实也很简单就是让 SQL 执行尽量命中索引。 开启慢 SQL 记录 如果你使用的是 Mysql,需要在 Mysql 配置文件中配置几个参数即可。 slow_query_log=on long_query_time=1 slow_query_log_file=/path/to/log调优的工具 常常会用到 explain 这个命令来查看 SQL 语句的执行计划,通过观察执行结果很容易就知道该 SQL 语句是不是全表扫描、有没有命中索引。 select id, age, gender from user where name = '爱笑的架构师';返回有一列叫“type”,常见取值有: ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好) ALL 代表这条 SQL 语句全表扫描了,需要优化。一般来说需要达到range 级别及以上。 表结构优化以一个场景举例说明: “user”表中有 user_id、nickname 等字段,“order”表中有order_id、user_id等字段,如 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |