美文网首页
被问住了的面试题

被问住了的面试题

作者: luckee | 来源:发表于2019-02-21 23:14 被阅读0次

    对于数据量很大的查询操作,怎么提高查询速度

    • 对表建立索引
    • 分表查询
      按时间分。典型应用:新闻类、qq状态、朋友圈动态等关注实时或最近的,可以用时间划分,比如当月一张表,上个月一张表。按区间分。通常每张表都会有个自增id,可以利用自增id分,比如user1表是150,user2表是51100

    truncate和delete的区别

    • truncate table和drop table的区别是,前者会保留表结构,只清除表数据,后者删除表结构和表数据
    • truncate table的功能和不带where的delete在效果上是一样的,都是把表中的所有记录删除。但是,delete是一行一行删,每一行的删除都会记录到操作日志里,而且是事务的,可以回滚,如果对删除操作定义了trigger,则会触发trigger。truncate是一次性删除,是直接释放存储表中记录的数据页,非事务的,所以有风险,最好备份,不会触发删除trigger,速度快。
    • truncate只能对table进行操作,而delete可以对table和view操作
    • truncate清除表数据后,新的记录id从0开始,delete清除数据后,id延续着以前的
    • drop和truncate是DDL,delete是DML
    • 当表被truncate 后,这个表和索引所占用的空间会恢复到初始大小,delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉

    同步和异步的区别以及优缺点

    • 同步:多线程环境且操作共享数据时使用,串行处理,有线程在处理,后面的线程就得等着,可以保证数据的安全性,缺点是后面的线程体验差
    • 异步:资源有限的情况下,可以提高资源的使用率;可以提高程序的健壮性,不会因为一个线程挂了导致整个程序都崩了;改善用户体验。缺点是线程的创建,切换,销毁会有一定的系统开销,滥用多线程会影响程序的性能;增加编程的复杂度

    相关文章

      网友评论

          本文标题:被问住了的面试题

          本文链接:https://www.haomeiwen.com/subject/prjjyqtx.html