首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

昨天面试的三道题。

  •  
  •   ebony0319 · 2017-06-30 17:01:07 +08:00 · 1788 次点击
    这是一个创建于 867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天经历了一场非常失败的面试。分享三道题目,我不知道怎么回答的。

    数据库方面

    我就往视图 view 里面插入数据怎么做?

    这道题其实只隐隐约约记得视图可以修改方面,但是有很多约束条件。主要是考虑到完整性方面。

    大表(千万级别以上)使用索引的坏处

    网络方面

    就要用 UDP 做 TCP 协议怎么弄?

    感觉问题都是反着问的。

    10 回复  |  直到 2017-07-01 18:06:23 +08:00
        1
    mahone3297   2017-06-30 17:26:51 +08:00   ♥ 1
    * 索引坏处就是插入,删除 慢。。。占空间。。。
    * udp 做 tcp。。。你把 tcp 的 3 次握手协议实现,就是了吧。。。我理解的对么?
        2
    mortonnex   2017-06-30 17:30:54 +08:00   ♥ 1
    1.不了解
    2.索引会很大,占用磁盘
    3.自己定义报文结构,加上序列号,设置滑动窗口和拥塞窗口的大小,
    计算平均 RTT 时间,来决定重传超时时间
        3
    UnitTest   2017-06-30 17:33:17 +08:00   ♥ 1
    楼主面试啥岗位?
        4
    timwei   2017-06-30 17:38:05 +08:00   ♥ 1
    >>2
    先假设是説 MySQL
    Index 是个二元树,每次表增修删都更新树
    大表不分表直接使用 index,可能会造成增修删效能变差(更新树节点信息)
    且存放 Index 会占用更多空间。

    >>3
    是指送 UDP 包到 TCP port?
    做不到的,两个协定的包格式基本不一样

    还是指在 UDP 下达到 "保证送达"?
    这就做得到了,最简单的就是在 app.层弄个 ack 与 checksum
        5
    ebony0319   2017-06-30 17:40:41 +08:00
    @mortonnex 第三题答得漂亮。
        6
    ebony0319   2017-06-30 17:43:46 +08:00
    @UnitTest 一个开发工作来着。问了很多大学的知识,比如二叉树,矩阵,都是从精通到了解。
        7
    templefox   2017-06-30 17:51:49 +08:00 via Android
    写入 view 应该是要加 trigger,在 trigger 里你愿意怎么改 table 都成。我记得 mysql 里是这样。
        8
    Kilerd   2017-06-30 18:23:03 +08:00
    起码第三题我会啊

    kcp 不就是这个东西吗。
        9
    binux   2017-06-30 18:28:53 +08:00   ♥ 1
    > 就要用 UDP 做 TCP 协议怎么弄?

    自定义报文结构太麻烦了,直接在 TCP 外面再套一层 UDP,拿 UDP 当 IP 层发出去不就好了。。
        10
    xiaoshenke   2017-07-01 18:06:23 +08:00 via Android
    @binux 666
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   971 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 21:07 · PVG 05:07 · LAX 13:07 · JFK 16:07
    ♥ Do have faith in what you're doing.