面试题目,这个大表如何设计呢?他说一个通讯录有,3000多万条记录,有好几个大字段,text或者varchar比较长的,总表有50几个字段,问我如何设计表结构,让这个表的dml以及查询操作效果最高。然后还会从移动手机端更新到数据库服务器,如何让同步更新最快?我说我说的是分区分表,他摇了摇头。然后我说建立组合索引,全文检索,他也摇了摇头。然后我再说建立cluster,用集群来操作,他也摇了摇头。
大家你们说该怎么办呢?
大家你们说该怎么办呢?
解决方案 »
- ONM那里服务命名的端口跟对应实例的监听程序端口不一致为什么
- 为什么企业管理器中sys账户用任何密码都能登陆???(以DBA身份)
- 如何使用函数得到正确的结果?
- 一个关于Oracle序列的问题?
- oracle 的字符与参数的连接
- 怎么执行JOB语句
- 请大家帮忙优化一个多表查询的问题
- 各位大侠,请问我的 ManagementSever 这个服务起不来,应该怎么办
- 两个表的SQl语句(解决立刻有分)
- ORACLE 新用户权限分配问题,不好意思,初学ORACLE请兄弟们指导!
- 一条修改语句,要修改的字段:[金币] yxb,[经验] Exp [最大回合数] maximumNumberOfRound 如果最大回合数比数据库大就替代
- Oracle 数据查询的问题~!
1:表设计:问我如何设计表结构,让这个表的dml以及查询操作效果最高。这个难,一般来说不从业务角度来说就是将复杂划分为简单,将大表拆分成小表,多个表进行关联,使常用字段在一个表,其它的表通过关联进行扩展,虽然违反第三范式,但是效率可以得到提高,不过这个通常和业务关系紧密。2:调优:好几个大字段,text或者varchar比较长,分别建立单独的表空间,加大读取效率,一次读取数据量,减少IO操作
DB_block_size 和db_file_multiblock_read_count 设置3:传输:压缩非索引大字段进行存储
我觉得他想问的也是如果设计表结构,而你得回答是表已经建立好了,进一步调整需要做的事情。所以才会一直摇头。不过,这哥们也够狠,不给一点提示。补充一下7楼,是不是在保存时,就对text字段进行数据压缩,这样数据量会小很多。然后传输时,传递压缩数据,就能节省不少数据流量。我的意思就是,数据压缩以后,再存储,然后传递到服务器上后,如果需要读取,再解压缩。