曾经考虑过自己实现一个类似 MySQL 的简单数据库,但考虑到从零开始难度比较高,时间不太够,而且目前也不需要对数据库底层有非常深入的了解。现在考虑可不可以对 MySQL 进行一些扩展或者优化,比如写一些存储函数(我看到大家都说不要用存储过程,但这只是个人练习的项目不包含什么业务,写完不会改的)来改变排序的方式(字典,数字)等,或者对并行查询的简单优化,或者和 spark 这种分布式框架结合。不知道大家有没有一些建议,非常感谢。
1
xfspace 2017-04-30 15:53:25 +08:00 via Android
证明自己掌握...并不是写项目吧。把理论吃透先?
|
2
roychan 2017-04-30 15:58:15 +08:00 via iPhone
不了解底层怎么扩展?
|
3
1oNflow OP @xfspace 的确理论很重要,但我目前打算联系教授,如果没有一个项目作为基础,和对方没有谈技术的话题啊,因为没有笔试来证明我掌握了。
|
4
1oNflow OP @roychan 从零开始写一个数据库可能做不到了,不过去研究 MySQL 怎么做的还是可以的,而且不是源代码的扩展应该不会需要非常深入吧。
|
6
JamesMackerel 2017-04-30 16:22:13 +08:00 via iPhone
学生成绩管理系统?
|
7
roychan 2017-04-30 16:24:19 +08:00 via iPhone
学会用 MySQL 和了解数据库原理是两件几乎正交的事情。要证明你了解数据库理论,不一定要实现一个完整的数据库算法,实现数据库理论当中的一些重要算法就可以了。
|
8
1oNflow OP @JamesMackerel 这个主要侧重 web 方面吧,而且有 spring jpa 这种自己写怎么也超越不了啊。
|
9
msg7086 2017-04-30 17:22:32 +08:00
唔,为什么要证明自己掌握了使用数据库技术?
|
10
lianxiaoyi 2017-04-30 17:24:46 +08:00 via Android
例如索引什么情况下失效,为什么子查询慢成屎!!!!研究这些玩意!
|
11
moult 2017-04-30 20:00:38 +08:00 via iPhone
既然都考虑写一个数据库了,那就先搞一个 MySQL 的存储引擎吧。
|
12
wdlth 2017-04-30 20:21:35 +08:00
不是应该证明自己不光是掌握数据库么?
|
13
eloah 2017-04-30 20:50:49 +08:00
用 postgreSQL,证明自己不需要这么坑的 MySQL 数据库就好(逃
|
14
Tunar 2017-04-30 22:26:46 +08:00 via Android
轮子。。呗。。
|
15
changwei 2017-05-01 00:37:48 +08:00 via Android
刷 bat 等大厂的 dba 面试题呗!把所有面试题都吃透,并且能说出所有选项的对错原因,那么就算是精通了。另外可以参考一些非常复杂的大型开源项目的数据库设计,观察他们对于范式和反范式的设计和优化,索引的建立以及表关系(实体间关系)的理解。
|
16
bottleimp 2017-05-01 01:49:34 +08:00 via iPhone
不需要这么麻烦吧,只是为了面试的话,搞明白索引怎么实现的,然后懂一些 sql 优化就行了。
|
17
zhx1991 2017-05-01 12:07:20 +08:00
把索引搞懂吧, 日常使用这点最重要
|
18
zhengxiaowai 2017-05-01 13:44:40 +08:00
你是要奔 DBA 去么,其实普通开发对数据库要求没那么高,会配置,懂索引,能写 SQL,会优化 SQL,一般就够了。
|
19
Hozzz 2017-05-01 22:44:40 +08:00
基础的无外乎就是如何巡检数据库,优化 sql,搭建灾备环境,灾难演练;高级点的,知道底层架构( LRU,数据字典,数据如何落地,如何保证数据完整性,加锁机制,死锁,锁冲突...);再高级点的,如何截日志等等_(:з」∠)_
|
20
xliao 2017-05-02 08:45:58 +08:00
找几份 xxx 脱裤的文本数据,从导入、清洗、抽取、加工、分析最终得到一个 xxx 报表,优化优化优化,应该可以检测出对 Mysql 掌握程度了(至少开发够用了)。
|