面试题目,这个大表如何设计呢? 面试题目,这个大表如何设计呢?他说一个通讯录有,3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。然后还会从移动手机端更新到数据库服务器,如何让同步更新最快?我说我说的是分区分表,他摇了摇头。然后我说建立组合索引,全文检索,他也摇了摇头。然后我再说建立cluster,用集群来操作,他也摇了摇头。大家你们说该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只是1个表吗?感觉应该将比较长的字段分表建立,通过KEY字段连接给出的信息不是很完整 如果更新效率不高,用集群缓存去重新组织 表的数据结构吧。 比如lucene 再高一点用memcached redis等。 也可以读写分离。 先问他现在表 的查询sql是什么,才能看出有没有优化余地。 本帖最后由 Mr_Bean 于 2011-10-13 09:23:25 编辑 1.有好几个大字段,text或者varchar比较长的-->可以放在单独一个表中2.总表有50几个字段-->常用字段放在一个表中,不常用字段放在另一个表中 3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。从通信录来看,更新不会很频繁,然后是text、varchar等比较可变长度,用NoSql是否更加合适? 一点小想法,我也不太懂nosql,哈哈。。 1、已知条件不够,比如哪些字段需要查询,哪些经常查询?text、nvarchar的长字段是否需要查询?可否分成多个表?具体有哪些字段等等。2、50个字段确实不算多,没什么可怕的,3000多万似乎多了一点,但是也没啥好怕的。3、text、ntext字段没有必要分离到另一个表里面,因为其大小只有16个字节!16个字节是如何放下很多很多的内容的?当然是放在另一个地方了,16个字节的空间只是记录了这个地方的“地址”。其实就是相当于分到了另一个表里面。4、nvarchar很长的字段,其实直接转换成ntext的好了,和分到另一个表里的效果也差不多。如果不涉及到计算的情况下。5、“让这个表的dml以及查询操作效果最高” dml是啥?6、其实查询的效率是非常高的,慢的是把符合条件的记录给提前出来,再拼接成html,这个速度是远远慢于纯粹的数据库查询的。7、数据多了,就要分页显示,分页的时候如何高速?主要看是否能够利用索引,能够利用索引速度就快,就是这样! 你可以直接回答他:sir,我认为你脑子有问题 显然要进行分表。BLOB/CLOB字段以及那些不常用的字段进行分离。这样才会提高效率。 BLOB/CLOB字段以及那些不常用的字段进行分离,blob字段如何分离呢,请教一下。 该摇。要速度快,首先想到的应该是内存数据库。 是oracle的话可以直接放buffer_pool。 3、text、ntext字段没有必要分离到另一个表里面,因为其大小只有16个字节!16个字节是如何放下很多很多的内容的?当然是放在另一个地方了。问下,同一张表下,text和ntext字段是放在哪个地方去了呢? 昏,這考題沒什麼,只是想了解你對大數據的處理能力,50多個字段3千萬筆都不算多,我們處理的比這多了幾倍,但是要求在一秒之間要完成一次transaction.看了很多人亂回答,嘿...都是不合格的dba 一个表,300多个字段。Oracle 10g。 虽然只说了这些信息,但是你可以从现实中遇到的真实查询情况,一一分析解说啊,用索引、存储、事务、视图等不同功能事先查询信息,而且一下子查询所有的新消息也是不可能的,对于一些虚拟主机来说也容易造成CPU超限。想到什么说什么,把自己当做要实现这些功能的客户。 sql server存储引擎 之类的书 写的明明白白啊 MySQL WorkBench 问题 急!请教个join连接查询效率的问题! 急!如何用sql语句 循环创建表。 关于两个表之间的条件组查询(急) 多个mysql表中的相同字段如何求和。 (十分着急,今天晚上一直等)搞了两天了还是没搞好,头都大了,希望高手帮帮我(真诚等待,50分,搞定马上结贴) 请教mysql里面int类型时间字段为什么相差8小时的问题。 怎样从MySQL连接池中提取连接。 关于mysql多实例配置的问题 MYSQL重启 mysql存储过程的问题 MySQL集群启动管理节点错误,大家帮我看一下
给出的信息不是很完整
比如lucene 再高一点用memcached redis等。
也可以读写分离。
2.总表有50几个字段-->常用字段放在一个表中,不常用字段放在另一个表中
一点小想法,我也不太懂nosql,哈哈。。
BLOB/CLOB字段以及那些不常用的字段进行分离,blob字段如何分离呢,请教一下。
要速度快,首先想到的应该是内存数据库。 是oracle的话可以直接放buffer_pool。
但是要求在一秒之間要完成一次transaction.看了很多人亂回答,嘿...都是不合格的dba
sql server存储引擎 之类的书 写的明明白白啊