暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL大厂面试宝典500题
339
98页
9次
2021-09-18
10墨值下载
MySQL精选问答500题
1selectselect * from T where k=1“select
command denied”,并没有错“unknown column”,是不是可以说明是在打开表之后才判
读取的列不存在?
答:这个是⼀个安全⽅⾯的考虑。你想想⼀个⽤户如果没有查看这个表的权限,你是会告诉他字
段不对还是没权限?如果告诉他字段不对,其实给的信息太多了,因为没权限的意思还包含了:
没权限知道字段是否存在。
2、wait_timeout 是客户端交互式的连接时间,如果程序连接mysql SERVER,是交互连接,
关联的时间参数为interactive_timeout, 这两个时间参数需要尽量⼀致吗,⼀般设置多少合适?
query_cache_size 虽然,,关query_cache_size=0 匹配
query_cache_type=off吗?还是直接query_cache_size=0 即可?
答:第⼀个问题:是的,这两个尽量设置成相同。值的话取决于业务。如果你⾯对的是成熟的开
发(⽐如公司内部团队),可以设置⼩些,分钟级别就⾏。
第⼆个问题:这两个都可以,不过⽤query_cache_type会好些(代码判断路径更短)。
3、⽂⾥遇到临时内存会跟随⻓连接的存在⽽存在,直到连接被销毁。想问的是,这部分临时内
存是由于什么产⽣?为什么不提前释放呢?mysql有⽤到内存池吗?
MySQL
定,所以5.7之后提供了⽅法让客户端有命令来做;MySQL的内存池⼀般说的是查询缓存和引擎
⾥⾯的(⽐如InnoDB 的buffe pool), 跟线程内缓存不是⼀个概念。
4、⽂中join的例⼦,内表和外表 都有⾼区分度条件的情况下,先过滤出两表符合条件的记录,
再对这些记录做join,可不可以?感觉这样性能更⾼。
答:MySQL确实有你提到的这种算法,叫做index_merge. 不过我们这个case⾥⾯不会,由于实
现的原因,MySQL⾄今没有⽀持跨表index_merge。
5、末尾问题有个疑问。是在分析器⾥⾯检查的列是否存在。且⽂章中说到执⾏器会检查有没有
为什⽤户是"""不存
在"。按照这个逻辑权限应该是在执⾏器做的,那这个"权限不存在"是哪个模块检查的?
答:询的时候限不存在在执⾏前单独的⼀次判,是为了安全虑。就是果没有权
限,你连“字段不存在”这个信息都不应该暴露给客户端。
6、如果你⽤的是 MySQL 5.7 或更新版本,可以在每次执⾏⽐较⼤的操作, 请问⽐较⼤的操作的
判断维度是什么呢? 即怎么判断是⽐较⼤的操作?
答:其实就是类似于很多数据排序,或者⼀个操作复杂的存储过程。这个是可以在测试环境稳定
复现的。如果语句都差不多,或者⽐较随机,或者可以⽤另外⼀种⽅法,⽐如⼀个连接执⾏了
N个语句以后做reset这个动作。
7、既然在链接阶段已经通过权限表获取了这个该连接所具有的权限,那么在执⾏阶段再检查⼀
次的意义何在?
答:执⾏器阶段会碰到需要再判断权限的情况,这时候读内存中事先存好的权限,⽽这个权限是
在连接器阶段算出来存进去的。
8、请教个业务操作表的场景,如果对⼀个业务数据表的操作既有查询(分⻚查询批处理),⼜
有更新,此场景下都是操作主库好呢?还是说查询⾛从库,更新操作⾛从库?您有没有好的建议
呢,如果遇到了此类业务场景您会怎么分析解决此困扰呢?
答:必须做语句分类,延迟敏感的⾛主库,不敏感的⾛从库。
9、上⾯说如果开启缓存查询在不命中的情况下开始执⾏分析器,分析语句,那么我发送语句的
key是什么时候⽣成的还是直接拿语句作为key,这时候我过我语句的列中包含了错误的列名
这个阶段是不检查的吗?
答:就是语句做key, 这时候还没到分析器阶段,确实还没检查。 不过不影响逻辑正确性,你
析的时候要带上失效逻辑哈。
10php
rows_examined实时获取查询的进度?
答:询进度是有的,如是查询结束后看查到多⾏,就是MySQL_num_rows. 不
个跟rows_examined不⼀样哦。
of 98
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜