1
hjc4869 2017-05-24 23:51:39 +08:00
一个人做数据库放在生产业务上?
|
2
msg7086 2017-05-24 23:52:08 +08:00
上过相关的课。但是自己撸一个就蛋碎了。
|
3
Andiry 2017-05-24 23:58:25 +08:00
KVS 很简单
DBMS 比较难,如果考虑性能的话 |
5
amanbolatbalabek 2017-05-25 00:03:35 +08:00 via iPhone
A. 可以
B. 2-3 周 C. 实际项目花了这么多时间 D. 没懂这问题 |
6
nazor 2017-05-25 00:10:47 +08:00
挺难的,需要考虑的太多。就算你有信心放在生产业务上,公司也不会放心。
|
7
flowyi OP @amanbolatbalabek 是应用于什么业务的? 2-3 周太屌了!
|
8
em70 2017-05-25 01:33:03 +08:00 via Android
这是科学家干的事
|
9
amanbolatbalabek 2017-05-25 01:35:23 +08:00 via iPhone
@flowyi 我公司的,做国际物流。管理系统包括运输、客户、财务、订单、库房、车辆、等等模块。
|
10
liuhaotian 2017-05-25 01:43:06 +08:00 via iPhone
@amanbolatbalabek 他说的是 DBMS 吧
|
11
mengyaoss77 2017-05-25 02:14:54 +08:00 via Android
软件工程都很费脑子
|
12
binux 2017-05-25 02:20:24 +08:00
数据库这个范围太广了,任何单独一个点拿出来就是一个大工程。
但是,LZ 听说过文件数据库吗? |
13
kaifeii 2017-05-25 02:26:58 +08:00
不应该问问用什么语言吗
|
14
Gathaly 2017-05-25 04:22:01 +08:00
索引和 SQL 的编译实现得花不少时间吧,如果直接拿 mysql 改改应该可以,不过是否能用和实现是两回事....
|
15
doctorlai 2017-05-25 05:13:29 +08:00
没有必要 重新照轮子
|
16
lsmgeb89 2017-05-25 05:21:48 +08:00 via Android
从头做?没个 10 年写不完吧
|
17
sinxccc 2017-05-25 05:22:41 +08:00
回去翻着课本写个基本功能的数据库不难…加上一些某个领域的功能难度也不是那么大,考虑到性能优化略折腾但也不是特别困难的事情。
但要能直接满足生产环境的要求…这得多牛的人才能一个人搞定这样的任务=_= |
19
zhs227 2017-05-25 07:24:26 +08:00
造一个 dbms 然后让它稳定下来,不说十年八年,一年半载总是要有的吧
如果是 kv 数据库应该简单一些,如果是通用的 RDBMS,应该会比较难。 |
20
reus 2017-05-25 08:28:25 +08:00
可以,全职一年左右吧,理论都很成熟的了,还有借鉴,从小到大的实现都有参考,sqlite、postgresql 这些。
|
21
fyyz 2017-05-25 08:33:48 +08:00 via Android
这玩意非常难,起码要写一个 sql 编译器,设计一个二进制数据库文件。如果不满足于基本的增删改查,要写一套事务系统,那难度就更大了。这些还是小问题,最难的是,这些东西尽量要避免出错,甚至对 bug 零容忍。否则一个小 bug 把数据库文件弄坏了,那怎么搞?
|
22
firefox12 2017-05-25 08:35:48 +08:00 via iPhone
读完 sqlit 写一个出来 半年差不多
|
23
Em5O7B1JGfjQnBry 2017-05-25 08:41:46 +08:00 via Android
写一个 rdbms 不难,但是要用于生产环境。。。太难了,全都是坑
|
24
Em5O7B1JGfjQnBry 2017-05-25 08:48:20 +08:00 via Android
如果 kv 引擎、NoSQL,那还好,看一下开源的源码写出来一个至少自己用的感觉是没问题的,时间不清楚,最近打算写一个
|
25
shakoon 2017-05-25 08:56:04 +08:00
这问题就像是:你有驾照吗?哦,老司机了啊,那你多久能造出一辆能上路的车来?
|
26
flowyi OP @liuhaotian 哈哈 你看出来我写错了
|
27
liuhaotian 2017-05-25 09:21:15 +08:00
@flowyi 啊..难道你要实现的不是一个 DBMS 吗.. 他的描述好像是业务?
|
28
loadinger 2017-05-25 09:23:44 +08:00
哈哈. 有人说什么什么简单, 2 3 天就搞定的.... 我只想说:放你玛的血....
|
29
daysv 2017-05-25 09:27:42 +08:00
我是来看各路大神显神通的
|
30
xiaoqi 2017-05-25 09:29:18 +08:00
不撸,营养跟不上~
|
31
QQ2171775959 2017-05-25 09:29:28 +08:00
你们说的也太笼统了,没有一个具体的指标,没有什么好参考的,随便哪一块小的项目都有可能要你花上大半年时间都说不定。
|
32
jhaohai 2017-05-25 09:30:30 +08:00 via iPhone
撸一个简单的很快,但是要对标 oracle、db2 之类的就呵呵了
|
33
liprais 2017-05-25 09:33:45 +08:00 via iPhone
不可能的,光把 sql 这一块做到能用就一个人不可能
|
34
cjyang1128 2017-05-25 09:45:57 +08:00
我们学校数据库原理课的大程就是撸一个数据库,当然不是一个人,是一个小组。主要有词法分析,b 树索引,数据存储并且包括 GUI,当时打酱油做了最简单的存储=-=,索引层是最难的。也有大神当年是一个人搞定的。。。惊为天人!
|
35
junzki 2017-05-25 09:54:54 +08:00
有一个东西叫 SSDB,就是一个人山寨了 Redis (作者自己说的)搞出来的东西。
|
36
qianguozheng 2017-05-25 09:59:28 +08:00
你这么一说,我觉得还是可以做的。
初期不考虑各种 benchmark, 比如想要实现内存数据库,类似 redis, 可以申请一个内存池,然后构建红黑数来存储数据结构,反正是 kv, 然后呢再搞个 cli 接口支持增删改查, 是不是一个简单的数据库就完成了? |
37
murmur 2017-05-25 10:02:28 +08:00
小的比不上 sqlite 大的比不上 mysql 所以我做他干嘛
|
38
likuku 2017-05-25 10:07:21 +08:00
数据库目前是商业软件的品质上远胜于开源软件的领域。
|
39
flowyi OP |
40
qianguozheng 2017-05-25 10:27:05 +08:00
@flowyi 再复杂的系统也是基于这种简单的架构来做的吧。
|
41
liuhaotian 2017-05-25 10:35:37 +08:00
@flowyi
不过“应用到具体工程”这个要求我觉得不是增加复杂度而是减小复杂度。 查询优化这玩意儿从上世纪开始研究到现在一直在增加深入,没有到一个极限,就是因为查询不确定性。但是就好像到了具体的工程我们建立数据库之后可以根据自己的查询建立索引一样,我们可以根据具体工程中的查询做查询优化的子集,或者说针对性的查询优化。 但是不管怎么说,要达到生产级别则还需要丰富的工程经验。 |
42
begeekmyfriend 2017-05-25 10:36:13 +08:00
我自己当初也想撸一发,结果只撸出一个 B+树,你知道我花了多长时间才写对吗。。。
|
43
begeekmyfriend 2017-05-25 10:36:36 +08:00
我自己当初也想撸一发,结果只撸出一个 B+树: https://github.com/begeekmyfriend/bplustree,你知道我花了多长时间才写对吗。。。
|
44
v2orz 2017-05-25 10:39:12 +08:00
一个良好的、可商用的 sqlparse,你觉得需要多久~不用说完整的 DBMS 了
想想我还是太弱鸡 |
45
flowyi OP @begeekmyfriend 14 年 9 月份第一个 commit,最近一个是 17 年 5 月 2 号。
|
46
begeekmyfriend 2017-05-25 10:45:32 +08:00
@flowyi 好歹赚了 200 颗星星,上了一次 trending,不过写数据库的梦想就此破灭了
|
47
simen513 2017-05-25 10:49:11 +08:00
就跟造车一样,四个轮子+发动机+椅子,就可以是个车了,老头乐就属于这个。
但是要真正的推广好,全世界也就最出名的几大厂家也就只能生产出比较有限的几个流行车型,这还是考虑了好多因素的权衡的情况。 |
49
zgqq 2017-05-25 13:18:11 +08:00
@begeekmyfriend 多久
|
50
begeekmyfriend 2017-05-25 14:42:21 +08:00
@zgqq 翻一下 commit 就知道。这是一个过程,之前是一个未知的问题,一直在探索,实际上掌握了诀窍以后就是个已知的问题,之后也就随便几天的事情了
|
52
magicdu 2017-05-25 15:28:03 +08:00 via Android
今天看公司的数据库关系表,捋了一上午了,眼疼啊。更别谈自己写个数据库出来了,现在自己设计优化数据库表关系都是个问题
|
53
EyreFree 2017-05-25 16:13:32 +08:00
表示只能撸一个精子库出来...
|
54
ericbize 2017-05-25 16:23:16 +08:00
哇,那辆保时捷好帅啊,要不自己造一辆? can you ?
|
55
paw 2017-05-25 17:15:57 +08:00
http://blog.codingnow.com/2011/01/memdb.html
梦幻西游 文件数据库。。 |
56
0915240 2017-05-25 17:27:32 +08:00 via iPhone
讲真 不说独自了。
诸位有给知名 db 贡献过的吗 😊 |
57
c4pt0r 2017-05-25 20:13:33 +08:00
仔细想了下,还真能。。。
|
60
codedump 2017-08-06 17:51:17 +08:00 1
看怎么定义“数据库”了,类似 ssdb 那样其实就是在 leveldb 上层包一个网络层的就。。。
|