zoukankan      html  css  js  c++  java
  • 数据库相关总结

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

    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
  • 相关阅读:
    git代码合并与冲突
    jQuery 事件方法---vvvv0
    原生JS获取HTML DOM元素的方法----------c
    JQuery获取元素的方法总结--ccc
    zookeeper[5] zookeeper集群配置及伪集群配置
    zookeeper[4] 安装windows zookeeper,及问题处理
    zookeeper[3] zookeeper API开发注意事项总结
    zookeeper[2] zookeeper原理(转)
    zookeeper[1] (转)ZooKeeper Programmer's Guide(zookeeper编程向导)---中文
    Java[1] Java学习书籍汇总(转)
  • 原文地址:https://www.cnblogs.com/xiaohouye/p/14460775.html
Copyright © 2011-2022 走看看