您的位置:首页 > 其它

近期的一些总结和安排

2010-11-03 22:37 218 查看
开题还在迷惘阶段,找完工作又得去lab写代码,终于恢复了以前的那种白天写代码,晚上看书的状态。



总结一下10.28~11.3号做的一些事情。一部分是实验室事务,一部分是自学MySQL。



刚开始接触MySQL,一边看手册, 在linux下进行了简单的安装和操作,MySQL有着极为丰富的特性,譬如说用户控制、查询缓存、字符串正则匹配以及多线程处理机制。

MySQL支持使用主机和用户名来进行用户身份认证,在本机试验时,MySQL客户端和服务器Mysqld的交互使用Unix域套接字(未确认,仅从客户端连接服务器时的提示推断!),当验证用户身份后,接受连接,将创建线程来处理用户请求。这里有几点尚未搞懂:

1.线程是从用户连接就存在,并等待用户请求,还是一旦用户请求,就创建一个新的线程?

2.为何使用线程而不是使用进程?当然二者各有优劣,使用线程能够更好的进行通信,但线程处理很多全局变量时可能会引起混乱,当然进程虽无这些缺点,但占用系统资源更多些。不知道MySQL是处于什么样的考虑而使用线程。



除了拥有一般数据库所拥有的功能外,还有一系列比较有趣的功能,最有趣的莫过于存储引擎系统。

将存储引擎当成了一个组件,就像一个switch开关,你可以自由的选择使用哪种存储引擎,如果追求访问的高速,你可以使用MYISAM,如果要求事务安全特性,可以使用InnoDB;如果你的业务根本没必要用到索引,那何必加上这么各累赘来影响需要的功能呢?此外,MySQL还支持自定义存储引擎,并规范了一系列的接口。

传统的数据库,大多仅提供一种存储系统解决多数问题,譬如PostgreSQL其存储系统基本上定死了,就算其Smgr模块,也只是提供了对多种存储器的统一支持而已;MySQL这种可插入式的存储引擎方式可以在不修改很多代码的情况下自由的加入新特性,来满足具体的需要。



目前,对存储引擎的理解还仅仅流于表面,对现有存储引擎的理解必然要结合代码来阅读,这也是下一步学习研究的重点。当然在这之前,需要对一些原理性的东西进行理解。

在搜集资料的过程中,发现了两本不错的书,一本是《Understanding MySQL Internals》,看介绍,似乎是从MySQL具体实现层面上来介绍,在网上找到了英文版本,评价很不错。

另外一本是《High Performence MySQL》,这本书已经出了第二版,内容涉及MySQL架构、调优、安全及其他主题。内容非常丰富,绝对适合有一定的数据库基础,但对MySQL理解不够深刻的读者。



安排一下下一周(11.4 ~ 11.11)的学习计划:

1.阅读《High Performence MySQL》的1~7章,每天一章,坚持写笔记!

2.快速浏览一下MySQL5.1的源代码,整理代码功能模块分布,并制定源代码阅读计划!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: