ebony0319
V2EX  ›  问与答

昨天面试的三道题。

  •  
  •   ebony0319 · Jun 30, 2017 · 3588 views
    This topic created in 3415 days ago, the information mentioned may be changed or developed.

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

    数据库方面

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

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

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

    网络方面

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

    感觉问题都是反着问的。

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

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

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

    kcp 不就是这个东西吗。
    binux
    binux
    Jun 30, 2017❤️1
    9
    > 就要用 UDP 做 TCP 协议怎么弄?

    自定义报文结构太麻烦了,直接在 TCP 外面再套一层 UDP,拿 UDP 当 IP 层发出去不就好了。。
    xiaoshenke
    xiaoshenke
    Jul 1, 2017 via Android
    10
    @binux 666
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4719 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 05:48 · PVG 13:48 · LAX 21:48 · JFK 00:48
    ♥ Do have faith in what you're doing.