none
一个分区视图问题 RRS feed

  • 问题

  • 我现在有两张表  Stock   StockForSearch   两表数据一样  每张大概3KW的样子     都用了分区视图  Stock是按照UserID 来分区(主要用于后台用户操作)   StockForSearch 是按照型号列(A-Z 0-9)来分区的(主要用于前台型号搜索)     现在后台用户要删除数据(2张表按照UserID同步删 或者同步更新)   Stock表删除速度还行     但是stockForSearch  删除奇慢   更新也是一样。。  两表是用数据GUID来关联的

    有没有哪位大牛给个解决方案 

    • 已编辑 LevonLee 2010年12月8日 4:10
    2010年12月8日 2:55

答案

  • 你也说到全文搜索,比如 lucene ,要实现实时更新,的确有难度;如果提交过于频繁,lucene的确会挂掉,

    但还是可以控制在5分钟之内更新。

    所以你需要权衡使用何种方式。

    实际上我第一次说过,nosql数据库,如 mongo ,可以实现快速更新,你可以考虑。

     

    • 已标记为答案 LevonLee 2010年12月9日 2:45
    2010年12月8日 6:43

全部回复

  • 楼主说 Stock 和  StockForSearch 两表数据一致,唯有分区规则不同,个人觉得有点雷同了(估计楼主的用意是 StockForSearch 是用来做搜索用)。

    一般针对大数据量,我们项目中的做法是,对大表进行分表(当然分区也可以),保证每张表100万数据左右,然后分表后的数据的汇总,可以

    使用其他数据库(如 mongo DB) ,或者 使用 lucene 来解决,目的也是为了实现全文搜索。

    如果硬要使用 stockForSearch 汇总表,楼主可以使用 sql profiler 进行优化,应该也可以解决问题。

    仅供参考。

    2010年12月8日 3:23
  • 那么同步问题 呢      如果我在小表中添加了数据   更新  删除              汇总表也要添加  更新  删除    能给说说这个吗
    2010年12月8日 4:09
  • Trigger is one of options.
    2010年12月8日 4:31
  • 如果用触发器  删除(更新)单条速度很快  但是如果批量删除(更新)  10000条   那速度也要1分钟左右。。

    2010年12月8日 4:38
  • 可以借助其他方式实现数据同步,比如建辅助表,记录最新更新记录,通过辅助程序,再同步到汇总表

    实际项目中,可能不同的业务需求,需要制定的标准也不一样

    如金融类,要求将很高,而sns类网站,要求就没这么高

    一般做数据库设计时,如果预期数据量会很大,一般都会考虑组合方式实现整个业务逻辑。

    单单依靠数据库,数据量达到一定程序时,响应都会比较慢(当然,即时优化查询方案,也可以,但不是长久之计)。

    特别是面向用户(用户数多的情况)的数据,都要这么考虑;而面向系统的基础数据,设计相对简单。

    个人建议 。

    2010年12月8日 6:04
  • 现在我遇到的问题就是数据实时同步的问题 

        以前是删除   但是删除他又需要重建索引   (写一个服务删记录  )     修改记录的状态  但是那表太大了    修改记录需要很长的时候  

     

     但是前台客户总提要求说要实时删

    我也试过用全文索引  但是总是搜索的问题解决  但是删除跟更新这个总是个瓶颈             

    2010年12月8日 6:24
  • 你也说到全文搜索,比如 lucene ,要实现实时更新,的确有难度;如果提交过于频繁,lucene的确会挂掉,

    但还是可以控制在5分钟之内更新。

    所以你需要权衡使用何种方式。

    实际上我第一次说过,nosql数据库,如 mongo ,可以实现快速更新,你可以考虑。

     

    • 已标记为答案 LevonLee 2010年12月9日 2:45
    2010年12月8日 6:43