draveness / blog-comments

面向信仰编程
https://draveness.me
140 stars 6 forks source link

为什么数据库不应该使用外键 - 面向信仰编程 · /whys-the-design-database-foreign-key #211

Closed draveness closed 2 years ago

draveness commented 4 years ago

https://draveness.me/whys-the-design-database-foreign-key/

zeromake commented 4 years ago

话说现在接触到的系统里都很少直接删除行数据了,都是用 deleted 或者 deleted_at 做归档化。

draveness commented 4 years ago

话说现在接触到的系统里都很少直接删除行数据了,都是用 deleted 或者 deleted_at 做归档化。

这确实也是一种常见的做法

mrdear commented 4 years ago

上大学时,学习数据库各种知识,三范式,触发器,存储过程,视图等,但到工作后发现很少使用到这些特性,业务中关注的只是存储数量级以及索引,把DB当成一个纯存储组件,只要能保存数据,并且提供快速查询足够了。那既然是这样,为什么没有出现专门为互联网一些业务设计的DB呢,只考虑基本的存储,索引,事务,也有点好奇这一点

draveness commented 4 years ago

上大学时,学习数据库各种知识,三范式,触发器,存储过程,视图等,但到工作后发现很少使用到这些特性,业务中关注的只是存储数量级以及索引,把DB当成一个纯存储组件,只要能保存数据,并且提供快速查询足够了。那既然是这样,为什么没有出现专门为互联网一些业务设计的DB呢,只考虑基本的存储,索引,事务,也有点好奇这一点

时代变了,很多时候我们也不需要这么复杂的抽象,很多非关系型数据库都可以满足这三个需求,这可能也是 NoSQL 目前应用越来越广的原因吧。

tottea commented 4 years ago

大佬了解TiDB吗,期待能讲一期分布式关系型数据库相关的

draveness commented 4 years ago

大佬了解TiDB吗,期待能讲一期分布式关系型数据库相关的

TiDB 不太了解,不过可以讲讲分布式 SQL

aiyogit commented 4 years ago

请问作者的配图都是如何制作的?

zeromake commented 4 years ago

@aiyogit 请问作者的配图都是如何制作的?

又一个不好好看文章的兄弟,文章的最后是什么

aiyogit commented 4 years ago

@zeromake

@aiyogit 请问作者的配图都是如何制作的?

又一个不好好看文章的兄弟,文章的最后是什么

现在看到了,谢谢。

scbizu commented 4 years ago

唔,benchmark是不是有点问题 ? Baseline的代码应该增加额外的SELECT操作吧 。

draveness commented 4 years ago

唔,benchmark是不是有点问题 ? Baseline的代码应该增加额外的SELECT操作吧 。

我觉没啥问题,这里看的是外键带来多少额外开销,不是模拟外键功能与外键的开销对比

siriuscc commented 4 years ago

对于python gevent 和asyncio, 还有go 的协程,感觉还处于在用却看不到本质,不知道 博主是否有一些见解可以分享。

draveness commented 4 years ago

对于python gevent 和asyncio, 还有go 的协程,感觉还处于在用却看不到本质,不知道 博主是否有一些见解可以分享。

Go 语言的调度器和 Goroutine 可以看这个 https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-goroutine/

flonly2008 commented 4 years ago

请教下博主,我也曾经想多次写blog来整理自己的思路和大家交流,后来发现时间实在不够就放弃了。因为每天下班就23点多了。请教博主的时间是怎么安排的

draveness commented 4 years ago

请教下博主,我也曾经想多次写blog来整理自己的思路和大家交流,后来发现时间实在不够就放弃了。因为每天下班就23点多了。请教博主的时间是怎么安排的

来看看这个 https://draveness.me/few-words-time-management/

Evan6998 commented 4 years ago

感谢作者的这些文章

towavephone commented 3 years ago

老哥真强,这些文章看的我一愣一愣的

Jarvan-via commented 3 years ago

我愿意称老哥为最强

JIAQIA commented 3 years ago

@mrdear 上大学时,学习数据库各种知识,三范式,触发器,存储过程,视图等,但到工作后发现很少使用到这些特性,业务中关注的只是存储数量级以及索引,把DB当成一个纯存储组件,只要能保存数据,并且提供快速查询足够了。那既然是这样,为什么没有出现专门为互联网一些业务设计的DB呢,只考虑基本的存储,索引,事务,也有点好奇这一点

这不就是NoSQL数据了么?但NoSQL很难保证事务,事务需要自己保证。

zeromake commented 3 years ago

@youncccat

请问一下文章里的图是用什么工具生成的呢?

不好好看文章+1,文章结尾最后是什么……

AustinWp commented 2 years ago

好文章,最后的问题也是我好奇的