Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1405812
  • 博文数量: 243
  • 博客积分: 888
  • 博客等级: 准尉
  • 技术积分: 2955
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-05 14:33
个人简介

漫漫长路,其修远兮!

文章分类

全部博文(243)

文章存档

2017年(2)

2016年(22)

2015年(32)

2014年(57)

2013年(107)

2012年(23)

分类: Mysql/postgreSQL

2013-09-06 14:54:33

1.请用图框的方式大致地描绘出MySQL架构体系.
忽略

2.限定MySQL5.5及以下为例,InnoDB存储引擎与MyISAM存储引擎的区别,至少写四点.

特点

MyISAM

Innodb

名称

Indexed Sequential Access Method(索引顺利访问)

 

文件构成

frm (存储表的定义)

MYD (存储数据)

MYI (存储索引)

索引文件和数据文件可以放在不同的目录,需要在创建表的时候通过DATA directory和index directory语句指定

innodb:有两种存储方式

共享表空间存储:表结构保存在.frm文件中,数据和索引保存在ibdata

多表空间存储:表结构保存在.frm文件中,每个表的数据和索引单独保存在.ibd中

修改innodb_file_per_table【1,0】

存储限制

有,在5.0版本以前,默认大小只支持4G。取决于OS文件大小的限制,你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸.myisam支持3种不同的存储格式:

静态表

动态表

压缩表

64TB

事务安全

 

支持

锁机制

表锁

行锁

B树索引

支持

支持

哈希索引

 

 

全文索引

支持

 

集群索引

 

支持

数据缓存

 

支持

索引缓存

支持

支持

数据可压缩

支持

 

空间使用

低

高

内存使用

低

高

批量插入的速度

高

低

支持外键

 

支持

数据物理存储

按插入数据的顺序存储

按照主键集聚存储


3.MySQL中控制内存分配的全局参数,有哪些?

public主要包括:key_buffer_size, innodb_buffer_pool_size, innodb_additional_memory_pool_size, innodb_log_buffer_size, query_cache_size
private主要包括:read_buffer_size, sort_buffer_size,join_buffer_size, read_rnd_buffer_size, tmp_table_size


4.请简洁地描述下MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间区别?

READ UNCOMMITED
SELECT的时候允许脏读,即SELECT会读取其他事务修改而还没有提交的数据。
READ COMMITED
SELECT的时候无法重复读,即同一个事务中两次执行同样的查询语句,若在第一次与第二次查询之间时间段,其他事务又刚好修改了其查询的数据且提交了,则两次读到的数据不一致。
REPEATABLE READ
SELECT的时候可以重复读,即同一个事务中两次执行同样的查询语句,得到的数据始终都是一致的。
SERIALIZABLE
与可重复读的唯一区别是,默认把普通的SELECT语句改成SELECT …. LOCK IN SHARE MODE。即为查询语句涉及到的数据加上共享琐,阻塞其他事务修改真实数据。


5. 小题集锦
1>.VARCHAR(N) 或 CHAR(N)中的N含义是:
N代表的是字符个数

2>.若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少(精确到数量级即可):
65535/3

3>.表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问您
是选择拆成子表,还是继续放一起,并且写出您的 理由?
答案:
拆分成子表

理由:
1.读写分离
2.减少数据页拆分和链接

4>.MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的:
A. 数据块
B. 索引值
索引值

选择答案后,告诉我们为什么?
答:
     
5>.username字段定义为VARCHAR(40)和VARCHAR(200) 有啥区别?
答:
可以存储长度一个是40,一个是200,如果超过255长度就要使用2个字节存储一个字符,这里设置200不知道是什么意思?



6>.MySQL数据库备份方式有那几种(只讨论InnoDB存储引擎),至少写四种。
1.mysqldump
2.xtrabackup
3.直接拷贝数据文件
4.主从复制也算备份一种


6. MySQL复制搭建M->N的过程,请简述各个步骤?(备注:M已经在线跑,N为新安装的MySQL服务器)
1>.mysqldump  --single-transaction --master-data=2  导出数据
2>.把dump出来的数据导入到新的mysql服务器
3>.在主库上建立一个复制账号repliaction slave repliaction client
4>.change master to .....
5>.start slave 


7. 看图分析(申明:应用程序未有任何版本变更)
 


1>.图出现什么样的现象,及现象关联性?




2>.通过图分析可能什么原因造成的?




3>.准对分析的原因,告知如何解决




4>.你是怎样思考分析的?
答:




8.SQL语句优化
原SQL语句:
SELECT ID,WAYBILL_NO,EXP_TYPE,PKG_QTY,EXPRESS_CONTENT_CODE,EFFECTIVE_TYPE_CODE
FROM T_EXP_OP WHERE ORDERID NOT IN(SELECT ORDERID FROM T_EXP_OP WHERE AUX_OP_CODE IN ('NEW','UPDATE','DELETE') AND ((OP_CODE IN (176, 162, 171, 131, 136)AND EXP_TYPE IN ('10', '20', '30')) OR (OP_CODE IN (191, 121)AND EXP_TYPE IN ('10', '20')) OR (OP_CODE IN (181, 111)AND EXP_TYPE = '10'))) LIMIT 10;


条件:
T_EXP_OP表主键为BIGINT类型的ID字段,存储引擎为InnoDB,无其他索引


优化后为:




9. 分页SQL语句优化
原SQL语句:
SELECT * FROM test FORCE(idx_m_n) WHERE m=1 ORDER BY n LIMIT 1000,10;


条件:
Test表为InnoDB存储引擎,主键为BIGINT类型的ID字段,二级索引:idx_m_n(m,n)


优化后为:




10. 语句挑错
SQL语句:
SELECT M.columnname……,N.* columnname…..
FROM left_table M  LEFT JOIN right_table N 
ON M. columnname_join=N. columnname_join  AND N. columnname=XXX AND M.columnname=XXX


请问本SQL语句哪里不合理,为啥不合理?
答:




11. [SELECT *] 和[SELECT 全部字段]的2种写法有何优缺点,至少写出四点
1>.
2>.
3>.
4>.
5>.


12. HAVNG 子句 和 WHERE的异同点,至少写出3点
1>.
2>.
3>.
4>.


13. 分布式数据库产品的特点(至少写4条)
1>.
2>.
3>.
4>.
5>.


14. 数据拆分架构 的优缺点(至少写8条)
1>.
2>.
3>.
4>.
5>.
6>.
7>.
8>.
9>.
    
15. 工作是否还有MySQL疑难至今未解决(备注:有,请简洁描述;若无,请写无)?
答:
   
   
   
16. 你对自己的未来3-5年的规划,以及近期1-2年的规划
答:

阅读(4321) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

dba_life2013-09-10 15:48:38

欢迎 讨论这些题目~