|
查看: 1785|回复: 26
|
做Database工作相关的朋友,可以来交流下吗?
[复制链接]
|
|
|
|
如果一个DB不好,系统慢,是程序员的错还是Team leader的错。书本上真的学不到这么设计一个好的DB。 |
|
|
|
|
|
|
|
|
|
|
发表于 15-7-2013 03:35 PM
|
显示全部楼层
两个都有错! 如果你两都没错,那就是DB的错。我猜你应该是用standard DBMS , MSSQL ,mysql or oracle??如有机会用用no-sql 吧,standard db 没得来! |
|
|
|
|
|
|
|
|
|
|
发表于 15-7-2013 03:41 PM
|
显示全部楼层
|
如果是normal db的,你有用indexing吗?用db clustering? load balacing ? server scale? 你可以用peformance diagram 去check哪一个queries,或tables, store procedures 是heavy read/write. |
|
|
|
|
|
|
|
|
|
|
发表于 15-7-2013 04:40 PM
|
显示全部楼层
谁说书上没教...
db会慢, 首先不是应该说谁的错, 是该找出原因, 目前的db都有提供足够的features来分析db的performance
就拿oracle来说, 其中1个方法是generate awr report, 然后从中分析到底是I/O问题, 还是特定的SP慢, 再通过上面大大说的indexing, 或者加强hardware, 总之就要对症下药
其实你要跟同事争论时, 谁是程式员谁是tech lead重要吗? 不是应该看谁是designer吗? 不是该叫1个人去找出问题所在吗? 真的看不到你问题的point在哪里
还有就是, 这个帖子不是应该开在-->电脑联盟›软件研发专区› 数据库专区的吗?
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 02:11 PM
|
显示全部楼层
alvinyoong2003 发表于 15-7-2013 03:35 PM 
两个都有错! 如果你两都没错,那就是DB的错。我猜你应该是用standard DBMS , MSSQL ,mysql or oracle??如 ...
可以分享下,怎么没得来法?
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 02:31 PM
|
显示全部楼层
alvinyoong2003 发表于 15-7-2013 03:35 PM 
两个都有错! 如果你两都没错,那就是DB的错。我猜你应该是用standard DBMS , MSSQL ,mysql or oracle??如 ...
如果一个 PO 有很多 items,standard db 有的来吗?
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 03:04 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 08:35 PM
|
显示全部楼层
hui_wooi 发表于 16-7-2013 02:11 PM 
可以分享下,怎么没得来法?
No-sql只是key-value store是很low base 的file storage schema.大多都是用in-memory来做开段,就像CDN server and file server 做后段。比起standard db 只是主重方便users而让software跟好卖,但core system还是没改,所以不够快。如果你论哪一个db peformance 最好, 就要看哪一个db most scalability。因为只以一个server来论peformance 是很没意思的。
我们就那FB来做例子。开此的fb是用mysql,但发意识到mysql不能成受大量的traffic,所以就更改mysql core system。但未来不是办法,因为mysql license 还会有问题的,之后自发cassandra 来solve.
可见big data , no-sql为来大有做为!
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 08:40 PM
|
显示全部楼层
hooi1983 发表于 16-7-2013 02:31 PM 
如果一个 PO 有很多 items,standard db 有的来吗?
看是谁用。当然大众人来用跟定没standard db来的好!
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 08:42 PM
|
显示全部楼层
cheah85 发表于 16-7-2013 03:04 PM 
是Microsoft/Oracle的错
对对!给我们太多翻版
|
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 09:08 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2013 11:39 PM
|
显示全部楼层
alvinyoong2003 发表于 16-7-2013 08:35 PM 
No-sql只是key-value store是很low base 的file storage schema.大多都是用in-memory来做开段,就像CDN s ...
既然你拿 Facebook 来讲,虽然我还是 noob,不过也看到你给错资料
FB 在 2010 年已经停止使用 Cassandra,转去用 HBase。
现在 FB 用 MySQL,而且还是 InnoDB,不是类似 no sql 的 MyISAM。
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 11:46 AM
|
显示全部楼层
hooi1983 发表于 16-7-2013 11:39 PM 
既然你拿 Facebook 来讲,虽然我还是 noob,不过也看到你给错资料
FB 在 2010 年已经停止使用 Cassandra ...
第一我没讲你noob。如果因为我讲到不detail,我向你说对不起。
我拿fb canssandra来做例子是因为它和mysql是fb由standard db转去nosql的一个大突破。
果真的要讲fb的,fb所用的software还很多。如你说fb还用mysql,哪fb也没停止使用 Cassandra 。hbase 也是取代Cassandra 其中的real-time messaging。还有in-box messages search,search indexing 等等。。。fb 也不单单用mysql,Cassandra 或 hbase。还有memcached, hadoop,hive,bigpipe,haystack 等等。。。最重要的是一个software 的peformance 是很看它的scalability。big data (hbase), no sql cassandra 都是为来大有做为。fb ceo 讲过要善用不同的software在不同区域的需求。
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 01:35 PM
|
显示全部楼层
alvinyoong2003 发表于 17-7-2013 11:46 AM 
第一我没讲你noob。如果因为我讲到不detail,我向你说对不起。
我拿fb canssandra来做例子是因为它和m ...
不过LZ的program可能只有几个人在用而已
我也不确定LZ是不是team lead, 是的话我估计project budget不超过5k
我猜的, 从他之前开的帖猜的
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 02:31 PM
|
显示全部楼层
alvinyoong2003 发表于 17-7-2013 11:46 AM 
第一我没讲你noob。如果因为我讲到不detail,我向你说对不起。
我拿fb canssandra来做例子是因为它和m ...
如果之前的语气令到你不快,请见谅。
我想过用 hybrid,mysql innodb + no sql / mysql myisam。
当 data 进来的时候,先收在 mysql innodb,然后 read 的时候,先去 no sql 的 db query,如果没有 data,才去 mysql innodb query,然后 insert 进 no sql db。
所以下次再 read 的就可以在 no sql db query 到了。
这样会不会快点,还是有何高见?
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 02:36 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 03:52 PM
|
显示全部楼层
hooi1983 发表于 17-7-2013 02:31 PM 
如果之前的语气令到你不快,请见谅。
我想过用 hybrid,mysql innodb + no sql / mysql myisam。
没关系,大家都是分想经验。
概念上你的想法是会快一点。但你要做到innodb 和 nosql synchronized 是很难,如果high traffic一直有update的时后,innodb 和 nosql之间的delay 就会很频繁,哪nosql 就变了一个负担来拖慢peformance?这想法用在某些是可行,但在high write traffic 的就不能了。如果还要scale的就跟难。
其实mongodb , redis 就好像你说的想法。只是它们把你说的想法成一个software。它们的front-end memory base会identify哪些是high read/write,就放它去high priority,low就low priority,因为memory必竟是有限的。你也可以为你的需求而改变memory 模式, like First come first serve or last come first serve。还有它们的scabilities也是一绝的。就像mongodb用shard scalability,可以分开大file to 一片片store在不同的server来分担每一个server 的storage。 就算上千万数据都不是问题。
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 03:54 PM
|
显示全部楼层
hooi1983 发表于 17-7-2013 02:36 PM 
btw,看看 FB 如何将 MySQL 淋漓尽致
https://www.facebook.com/MySQLatFacebook
我没有否认FB用mysql好像神将,fb还customize 自己的storage engines。但有些是mysql做不来的。
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 04:13 PM
|
显示全部楼层
alvinyoong2003 发表于 17-7-2013 03:54 PM 
我没有否认FB用mysql好像神将,fb还customize 自己的storage engines。但有些是mysql做不来的。
FB 不知将 MySQL 用到神酱,也将 PHP 变成了神。
|
|
|
|
|
|
|
|
|
|
|
发表于 17-7-2013 04:15 PM
|
显示全部楼层
alvinyoong2003 发表于 17-7-2013 03:52 PM 
没关系,大家都是分想经验。
概念上你的想法是会快一点。但你要做到innodb 和 nosql synchronized 是很难 ...
还在想着如何将 existing 的 innodb db 配合 no sql。
key value 的 table 就比较适合 no sql,
不过如果商业软件,有很多 transaction 和 join table 的话,我还是觉得 standard db 比较适合。
|
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|