面试题目,这个大表如何设计呢?

九月茅桃
Golang领域优质作者
博客专家认证
2011-10-11 11:40:43
面试题目,这个大表如何设计呢?

他说一个通讯录有,3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。

然后还会从移动手机端更新到数据库服务器,如何让同步更新最快?

我说我说的是分区分表,他摇了摇头。

然后我说建立组合索引,全文检索,他也摇了摇头。

然后我再说建立cluster,用集群来操作,他也摇了摇头。


大家你们说该怎么办呢?
...全文
2708 109 打赏 收藏 转发到动态 举报
写回复
用AI写文章
109 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinguanding 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 114 楼 mchdba 的回复:]

引用 113 楼 jinguanding 的回复:

1.第一原则:通讯录的话,建议把一些不会变更的信息尽量集中在一张表中,而会变更的放……
[/Quote]

是的,CSDN是我以前大学时期就开始活跃的地方,不过后来就没怎么上了!


#*********************#
技术网站:www.mysqlops.com
新浪微博:http://weibo.com/mysqlops
#*********************#
狂想者 2011-10-19
  • 打赏
  • 举报
回复
学习了!!!!
gaidea 2011-10-18
  • 打赏
  • 举报
回复
让我说就是遍历了
coolkisses 2011-10-18
  • 打赏
  • 举报
回复
如果说开了,这个知识面很广,涉及具体知识点,又会很深入。
关键还是需要整理出一个思路,将优化的方向想清楚。
zhangxiaolei168 2011-10-18
  • 打赏
  • 举报
回复
明显数据仓库设计
独孤名 2011-10-18
  • 打赏
  • 举报
回复
学习了......
九月茅桃 2011-10-18
  • 打赏
  • 举报
回复
总结了大家的建议:

1,大字段单独放一个表里面。

2,普通字段或者业务连接比较紧密的放一个表里面。

3,建立适合的索引。

4,分区,分表。

5,cluster,主从等等。
hhzii 2011-10-18
  • 打赏
  • 举报
回复
看了真是头晕晕
mengliolivia 2011-10-18
  • 打赏
  • 举报
回复
不明白
kin988g 2011-10-18
  • 打赏
  • 举报
回复
我表示无压力.....不懂啊
lingdufangwei 2011-10-18
  • 打赏
  • 举报
回复
天才啊!
九月茅桃 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 113 楼 jinguanding 的回复:]
描述信息:
他说一个通讯录有,3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。

然后还会从移动手机端更新到数据库服务器,如何让同步更新最快?


1.第一原则:通讯录的话,建议把一些不会变更的信息尽量集中在一张表中,而会变更的放到一张表中

2.第二原则:对于一些大字段(TEXT……
[/Quote]

是itpub的mysql板块版主吗?
jinguanding 2011-10-18
  • 打赏
  • 举报
回复
描述信息:
他说一个通讯录有,3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。

然后还会从移动手机端更新到数据库服务器,如何让同步更新最快?


1.第一原则:通讯录的话,建议把一些不会变更的信息尽量集中在一张表中,而会变更的放到一张表中

2.第二原则:对于一些大字段(TEXT及VARCHAR(N)...N>50),要考虑是否这些字段不经常变更的,若是有再变更的,是否应该考虑再一次:不变更的大字段,放一个张表,可能经常变更的放一张表中....

3.若是一些可以考虑使用类似JSON串组织的内容,可以考虑采用此方式放到一个大字段中存储,减少同步的判断等操作,直接覆盖的模式.....不过这也看业务....不一定好用


备注:对拆分的表与主表之间的关系为 主键值一一对应....


#*********************#
技术网站:www.mysqlops.com
新浪微博:http://weibo.com/mysqlops
#*********************#


九月茅桃 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 111 楼 superdullwolf 的回复:]
mangoDB
Hadoop
MemCached
这些有木有?
让你自己编程实现这些东东,你能不能拿出方案?
[/Quote]

会用mongoDB,做过实例,
但是Hadoop不会用,MemCached也没有用过。
超级大笨狼 2011-10-18
  • 打赏
  • 举报
回复
mangoDB
Hadoop
MemCached
这些有木有?
让你自己编程实现这些东东,你能不能拿出方案?

超级大笨狼 2011-10-18
  • 打赏
  • 举报
回复
切,要是我也摇头
现在是大内存,NoSql的时代,靠的是算法
所有FK可以用哈希,有木有?
所有度量值(时间,小数,需要Top的字段)可以用平衡二叉树,有木有?
所有字符串类型字段,可以用分词,倒排索引表,有木有?

这些不知道,就别怪我摇头.
算法+分布式
这一关是必须要过滴!~~
你逃避不了
liyihuang 2011-10-17
  • 打赏
  • 举报
回复
不是吧
jiahehao 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 stone688598 的回复:]
他就是想让你说说表结构设计原则和优化原则,是开放性题目,他想用一个特吓唬人的问题,看看你的知识面,基础知识什么的,你敞开了随便答。

但是一定要记住:一边答一边摇头
[/Quote]

赞成。这题没有标准答案,就看你的知识面。
yejiaa 2011-10-17
  • 打赏
  • 举报
回复
路过的帮楼主顶一顶了!!!
hackerxxw 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 81 楼 mchdba 的回复:]
问下,同一张表下,text和ntext字段是放在哪个地方去了呢?[/Quote]

sql server存储引擎 之类的书 写的明明白白啊
加载更多回复(89)

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧