• 数据库相关总结


    一.对两张表的结果进行合并起来,会有临时

    union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序;   (会去重,而去重所需要的开销很高,)

    union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;(不会去冲,效率高)

    二.分库分表的策略

    首先查询的时候,怎么定位具体的表:查询之前,就要知道在哪张表;

    1.按范围分表,如:id:1-1000万 放一张表;10001-2000万放一张表

    2.月份,年份分表,1个月一张表,每年一张表

    比如说按照时间范围来分库分表,每个库表中存放的都是连续时间范围的数据。但是这种方式一般很少用,因为很容易会产生热点问题,大量的流量都打在最新的数据上了。这种方案的优点在于扩容的时候非常简单,比如只要预备好每个月都准备一个库就可以了,到了下一个新的月份自动将数据写入新的库。缺点则是,如果大部分请求都是访问最新的数据,那么在这里,分库分表的设计目的就只是简单的扩容,而不是为了应对高并发了。

    3.根据hash算法分表,每次通过标识算出表明

    按照某个字段的hash值均匀分散,这个较为常用。优点在于可以平均分配每个库表的数据量和请求压力;缺点在于扩容比较麻烦,因为会存在一个数据迁移的过程,即之前的数据需要重新计算hash值并重新分配到不同的库表中。

    三. myisam与innerDb 引擎区别

    Innerdb引擎,索引与数据放在一起,叶子结点包含了完整的数据记录,两个文件,存结构,索引和数据,集聚索引,或聚簇索引。。

    innerdb支持事务

    数据库文件两个:

    .frm:文件存储表定义

    .iad:存储索引和数据

    myisam引擎:索引与数据不在一起,就是非集聚索引(有三个文件,frm,存表结构,存数据,存索引,i d),数据存在磁盘data目录下

    不支持事务

    四:B树与B+tree区别

    B+树:叶子结点数据有指针,可以查找范围,数据直接存储在叶子节点中

    B树: 叶子节点只存储了索引,需要根据索引去查数据,

         没有指针,要查询范围,如,>20的值,每次都要从根节点load

    五:1.分库分表,集群;创建表结构没问题,sql写的没问题;索引没问题;

    团队五人,专业从事软件开发,接单工作,专注于Java,.Net,PHP
  • 相关阅读:
    目标检测应用化之web页面(YOLO、SSD等)
    传统候选区域提取方法
    非极大值抑制(Non-Maximum Suppression,NMS)
    Darknet windows移植(YOLO v2)
    线性判别分析 LDA
    SVM 支持向量机
    特征-相似度衡量
    布隆过滤器 Bloom Filter
    聚类算法
    图论--最大流
  • 原文地址:https://www.cnblogs.com/xiaohouye/p/14460775.html
Copyright © 2020-2023  润新知