iteye_17915 2009-12-07 09:23
浏览 244
已采纳

Cisco面试归来,有两个问题不解

1、两个长整数求平均值;(不能使用BigInteger,因为效率太差)

2、怎么保证数据库中一个字段值的唯一性;(如注册用户名必须唯一,不能使用数据库唯一性约束,也是考虑到高并发大数据量下的效率)

面试从头到尾感觉Cisco做事总是把性能和24x7放在第一位的, 涉及到了Http协议、反向代理、Cache等等N多能优化性能的东东。。。

  • 写回答

1条回答 默认 最新

  • 宁静-夏天 2009-12-07 09:23
    关注
    1. long longInt1;
      long lingInt2;
      long av =(longInt1>>1)+(lingInt2>>1)+ (longInt1&0x01)&(longInt2&0x01);

    2. 在内存中构建abc树结构来对应唯一字段的检索,读写互斥

      考虑到并发问题,abc树根据字段首字符,或者更进一步(下一个字符)进行散列

      为每个abc配备一个写字段数据的缓存(也是abc树),等缓存到一定数据量,对主abc树进行添加更新,并将自己清空,等待新的写入。

      查询时首先定位 主abc树,然后对主abc树和缓存abc树同时进行检索

      缓存abc树读和写非常频繁,但因为树比较小,速度会比较快,主abc树大部分只有读操作,写操作非常少(只有批量更新的时候),即使写也非常快,缓存abc树已经构建好结构了,只是为主abc树添加节点了

    感觉第二题有点把数据库压力分布到其他地方去做,如果有多个client操作数据这个表,则要考虑把这个功能作一个server,让所有需要数据库的地方都能访问到,使用检索的算法和散列的模式,应该还有很多优化的地方

    两个题,由于水平问题较弱回答的比较粗浅,希望大家指正。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置