MySQL技术问答-下篇
来源:互联网 发布:手机拨号软件 编辑:程序博客网 时间:2024/05/21 15:39
15、你是如何维护数据库的数据字典的?
这个大家维护的方法都不同,我一般是直接在生产库进行注释,利用工具导出成excel方便流通。
16、你们是否有开发规范,如果有,如何执行的
17、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问
(1)、您是选择拆成子表,还是继续放一起;
(2)、写出您这样选择的理由。
答:拆带来的问题:连接消耗 + 存储拆分空间;不拆可能带来的问题:查询性能;
如果能容忍拆分带来的空间问题,拆的话最好和经常要查询的表的主键在物理结构上放置在一起(分区) 顺序IO,减少连接消耗,最后这是一个文本列再加上一个全文索引来尽量抵消连接消耗
如果能容忍不拆分带来的查询性能损失的话:上面的方案在某个极致条件下肯定会出现问题,那么不拆就是最好的选择
18、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?
答:InnoDB是基于索引来完成行锁
例: select * from tab_with_index where id = 1 for update;for update 可以根据条件来完成行锁锁定,并且 id 是有索引键的列,如果 id 不是索引键那么InnoDB将完成表锁,,并发将无从谈起
19、如何从mysqldump产生的全库备份中只恢复某一个库、某一张表?
答案见:http://suifu.blog.51cto.com/9167728/1830651
20、开放性问题:一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
1、如果A表TID是自增长,并且是连续的,B表的ID为索引
select * from a,b where a.tid = b.id and a.tid>500000 limit 200;
2、如果A表的TID不是连续的,那么就需要使用覆盖索引.TID要么是主键,要么是辅助索引,B表ID也需要有索引。
select * from b , (select tid from a limit 50000,200) a where b.id = a .tid;
阅读全文
0 0
- MySQL技术问答-下篇
- MySQL查询优化技术的一点儿问答
- MySQL初学者使用指南(下篇)
- MYSQL初学者使用指南(下篇)
- MYSQL初学者使用指南 下篇
- 小灵通技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- 软件开发技术问答
- bzoj 3669: [Noi2014]魔法森林
- java 内部类
- RFS自动化测试工具安装与使用总结
- Django学习笔记 --1 Hello world!
- bzoj4997: [Usaco2017 Feb]Why Did the Cow Cross the Road III
- MySQL技术问答-下篇
- pat 乙级 1012. 数字分类 (20)
- 阿里部分面试题整理
- Learning Scrapy 1
- TLD目标跟踪算法详解(二)跟踪器与检测器的设计
- oracle(02): PL/SQL基本概念,关系运算符,顺序结构,分支结构,循环结构
- 顺序容器及其应用 (一)
- ORA-00328 ORA-00334
- 【剑指Offer】二维数组中的查找