首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MYSQl规范

    不在数据库做运算:cpu计算务必移至业务层 控制单表数据量:单表记录控制在1000w 控制列数量:字段数控制在20以内 平衡范式与冗余:为提高效率牺牲范式设计,冗余数据 拒绝3B:拒绝大sql,...避免使用NULL字段 NULL字段很难查询优化 NULL字段的索引需要额外空间 NULL字段的复合索引无效 少用text/blob varchar的性能会比text高很多 实在避免不了blob,请拆表...where age +1 = 10; 不用外键,请由程序保证约束 sql语句尽可能简单 一条sql只能在一个cpu运算 大语句拆小语句,减少锁时间 一条大sql可以堵死整个库 简单的事务,事务时间尽可能短...join 库名,表名,列名必须用小写,采用下划线分隔 abc,Abc,ABC都是给自己埋坑 库名,表名,列名必须见名知义,长度不要超过32字符 tmp,wushan谁TM知道这些库是干嘛的 建议将大字段...,访问频度低的字段拆分到单独的表中存储,分离冷热数据 禁止在where条件列使用函数或者表达式 禁止大表JOIN和子查询

    60710

    数据库分区概念及简单运用

    Partitioning) 水平分区:是对表的行进行分区,通过这种方式不同分组里面的物理列分隔的数据集得以组 合,从而进行个体分隔(单分区)或集体分隔(1个或多个分区).所有表中定义的列 在米格数据集中都能找到...(一定要通过某个属性来进行分割,这里使用的就是年份) 垂直分区:通过对表的垂直划分来减少目标表的宽度,事某些特定的列被划分到特定的分区, 每个分区都包含了其中的列所对应的行。...例如:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时 候就要把这些不经常使用的text和BLOB划分到另一个分区,在保证他们数据相 关性的同时还能提高访问速度。...less than(20), partition p2 values less than(40), partition p3 values less than(maxvalue) --分区列中的最大值...数据组织形式(不同的数据又可选择不同的库表拆分方案): 评论基础数据按用户ID进行拆库并拆表 图片及标签处于同一数据库下,根据商品编号分别进行拆表 其他的扩展信息数据,因数据量不大,访问量不高,处理于同一库下且不做分表即可

    1.6K20

    服饰订单自动按照尺码和店铺级别分货到店

    一份到货分货条件,当该款货品到货12件以内时,只分到一家店铺;到货12-24件时分到2家店铺,以此类推。...1.将订单、分货级别和分货基础原则(店铺区间)导入Power Query 导入数据 2.对订单进行分拆 分拆的步骤可直接使用交互界面,为说明前后顺序,我使用高级编辑器对关键环节添加了注释(见"//"行...= Table.RemoveColumns(分货店铺数,{"订单数量"}), //逆透视列,将尺码变为竖排 逆透视列 = Table.UnpivotOtherColumns(删除的列,...{"货号", "性别", "类别", "分货店铺数"}, "属性", "值"), 重命名列 = Table.RenameColumns(逆透视列,{{"属性", "尺码"}, {"值", "各尺码订单数量...这个货订单47件,按照条件优先分给了前4家店铺;并且A店分到的数量最多。

    1.1K10

    SQL Server 2014聚集列存储索引

    在SQL Server 2012中首次引入了基于列存储数据格式的存储方式。叫做“列存储索引”。...前一篇我已经比较了行存储索引与非聚集的列存储索引(https://cloud.tencent.com/developer/article/1032227)。...这个数据段只包含该列的值,对于大型表它分到多个数据段中,每个数据段中只含有100万行数据,这就叫做行组、数据段由一个或者多个数据页组成。数据将在内存和硬盘上以数据段的形式传输。   ..., rowversion , sql_variant,精度大于18 的decimal,CLR 和xml等)    另一方面,对于索引列900字节的限制也不适用与列存储索引。...流程就是将行数据提取成列数据,然后进行压缩存储,多余的部分放到deltastore中。

    1.5K90

    Power Query极致应用:商品分拣效率提升一倍

    直接拆箱分到店铺 这种操作方式叫做越库。...导入数据 ---- 将前面讲到的装箱单和分货单分别导入Power Query,生成两个查询。 分货单的尺码是横排的,使用逆透视列的方式变为竖排: 2....[数量]} 展开上述自定义列后,再次添加自定义列,数值都为1即可,这里对原数量拆分到了多行。 分拆行的查询 3....装箱单排序 分货单排序 两个查询分别添加索引列,并按索引将两个查询合并,合并后的查询在装箱单界面只展开“店铺”列。 添加索引 按索引合并查询 展开店铺列 4....汇总数据 ---- 使用分组功能,对数据进行汇总 分组依据 分组结果 这样,将查询上载到Excel当中,物流中心打印出来,即可拆一箱,分拣到店铺一箱,无需上架。

    1.3K40

    sharding sphere MySQL分库分表分享

    单库单表 拆分为 N个库N个表 分为垂直拆分,水平拆分 什么是垂直拆分 按结构(表头/约束)拆分 垂直拆库 把单库中的不同业务的表, 拆分到不同库中 比如 原本单库的 用户表, 订单表 将用户表相关的表放到同一个库中...A库 将订单相关的表放到同一个库中 B库 垂直拆表 把表中的多个字段, 拆出来部分字段放到另一个表中 比如 A库B表的一行, 有 1 2 3 4 5 列 把 1 2 3 4 列 拆出来放到 A库...与微服务治理类似,便于集中管理,监控,扩展 高并发情况下提升IO,数据库连接数,单机硬件资源瓶颈 垂直拆分缺点 多表join 分布式事务处理复杂 单表数据总量无法解决(水平切分处理) 什么是水平拆分 按内容拆分 将1w...看代码实现的思路 数据倾斜问题 一致性hash算法 + 权重配置 看代码实现的思路 todo 读写分离特性问题探讨 查询优化 sharding-proxy代理分享 注意点 读写分离 没有事务时, 根据SQL

    1.7K10

    同样是分库分表, 你为何如此优秀

    数据库瓶颈一般有磁盘IO,网络IO等瓶颈, 以及SQL计算等引起的CPU瓶颈....垂直分表 针对某一个表IO较多, 同时表的列宽度较大时,一般会有如下问题: (1)表的行宽度较大时,检索表的时候需要执行大量的IO,严重降低了性能; (2)在数据更新时不仅会增加数据文件的IO负担,...这里拆表时, 可以根据以下拆分大表原则: (1)把不常用的字段或者不经常更新的字段拆分到一张表, 经常变更的字段拆分到另一个表中; (2)把text,blob等大字段拆分出来放在附表中,可以有效减少行溢出问题..., 提高IO效率; (3)经常组合查询的列拆分到一张表中; 例如, 如下用户表: 用户表:{'用户ID', '昵称', '生日', 'email', '登录时间'} 先分析下表结构, 除了'登录时间...'字段外, 其他字段基本都不会变动了, 首先可以将'登录时间'时间.

    42810

    数据库分区、分表、分库、分片

    另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下: 1、相对于单个文件系统或是硬盘,分区可以存储更多的数据; 2、数据管理比较方便,比如要清理或废弃某年的数据...(朋奕注:这里具体使用的分区方式我们后面再说,可以先说一点,一定要通过某个属性列来分割,譬如这里使用的列就是年份) 2、垂直分区 这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区...举个简单例子:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时候就要把这些不经常使用的text和BLOB了划分到另一个分区,在保证它们数据相关性的同时还能提高访问速度。...数据组织形式(不同的数据又可选择不同的库表拆分方案): 评论基础数据按用户ID进行拆库并拆表 图片及标签处于同一数据库下,根据商品编号分别进行拆表 其它的扩展信息数据,因数据量不大、访问量不高,处理于同一库下且不做分表即可...分片规则(rule) 前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难度

    19.2K74

    浅谈mysql分区、分表、分库

    LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。...HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。...启用符号链接表示可以使用create table的index directory或data directory选项将MyISAM索引文件或数据文件链接到另一个目录,如果删除或重命名表,符号链接指向的文件也将被删除或重命名...MySQL 5.1 支持一个称为NO_DIR_IN_CREATE的sql_mode选项。如果从服务器运行时将SQL 模式设置为包括该选项,复制CREATE TABLE 语句时将忽略这些子句。...分库 水平分库 概念:以字段为依据,按照一定策略(hash、range等),将一个库中的数据拆分到多个库中。

    2.1K11

    MySQL中的表设计优化

    NULL值不利于索引,MySQL难以优化可为NULL的列查询。当可为NULL的列被索引时,每个索引记录需要一个额外的字节用于标识其是否可空。如果某列计划要创建索引,要尽量避免将其设计成可为NULL。...当表中存在类似于text或者很大的varchar类型的大字段时,如果在多数情况下访问该表时并不需要这个字段,那么可以将其拆分到另一个的独立的表中。 把常用属性分离成小表。...此时可以考虑拆表技术,以缓解单表的访问压力,提高数据库的访问性能。 拆表分为水平拆分和垂直拆分。...根据系统处理的业务不同,常见的水平拆分方式如下: 按照表中某一字段值的范围进行划分,如按照时间、地域、类型、等级或者某列的取值范围等,把数据拆分后放到不同的表中。...如果user表中的记录数超过了一定的量级,则需要把该表中的记录拆分到多个表中分别进行存储。这里采用对id进行取模3运算,每一条记录根据mod(id,3)的值是0、1还是2,分别存储到对应的表中。

    1.2K10

    GreenPlum分布式数据库存储及查询处理

    greenplum会根据指定的Hash key列计算每一行数据对应的Hash值,并映射到相应的segment实例。当选择的Hash key列的值唯一时,数据会均匀的分散至所有segment实例。...查询语句的WHERE条件是否与考虑分区的列一致 数据仓库是否需要滚动历史数据?历史数据的滚动需求也是分区设计的考虑因素 按照某个规则数据是否可以被均匀的分拆?...例如:将一个月分区数据拆分到一个1-15日的分区和另一个16-31日的分区 ALTER TABLE tb_cp_02 SPLIT PARTITION FOR('2013-01-01') AT ('2013...2.查询规划和分发 用户像对任何数据库管理系统那样将查询发送到Greenplum数据库。它们使用psql之类的客户端应用连接到Greenplum的Master主机上的数据库实例并且提交SQL语句。...这个查询计划由另一种称为收集移动的移动操作。收集操作表示Segment何时将结果发回给Master,Master再将结果呈现给客户端。

    2K30

    2022年Java秋招面试,程序员求职必看的MySQL面试题

    图片8、如果一个表有一列定义为TIMESTAMP,将发生什么?图片9、你怎么看到为表格定义的所有索引?...1、CONCAT(A, B) – 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。图片21、MySQL支持事务吗?...对于查询中很少涉及的列或者重复值比较多的列,不宜建立索引。...答:基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表46、试述视图的优点?...图片49、你可以用什么来确保表格里的字段只接受特定范围里的值?图片50、说说对SQL语句优化有哪些方法?(选择几条)图片

    1.3K30

    Mysql性能优化

    可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能。 Memory:数据保存在RAM,快速访问数据。...只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。 2). 唯一索引         普通索引允许被索引的数据列包含重复的值。...如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。...这里就涉及到拆表的算法:     记录日志的表,也可以按周或者按月来拆。     记录用户信息的表,按用户id的hash算法来拆。...这个时候需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系。   版权声明:本文为博主原创文章,未经博主允许不得转载。

    2.4K110

    Transact-SQL基础

    数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地转换位模式。...因为所有的 Unicode 系统均一致地采用同样的位模式来表示所有的字符,所以当从一个系统转到另一个系统时,将不会存在未正确转换字符的问题。...2.3.9 数据类型转换 可以按以下方案转换数据类型: 当一个对象的数据移到另一个对象,或两个对象之间的数据进行比较或组合时,数据可能需要从一个对象的数据类型转换为另一个对象的数据类型。...SQL Server 会自动将数据从一种数据类型转换为另一种数据类型。例如,将 smallint 与 int 进行比较时,在比较之前 smallint 会被隐式转换为 int。...nodes() 方法(xml 数据类型) 说明如何使用 nodes() 方法将 XML 拆分到多行中,从而将 XML 文档的组成部分传播到行集中。

    4.8K20

    vba新姿势,如何让vba的数据处理超越Python

    ,后续我会逐一使用 power bi(不仅仅 pq,也用 dax),sql 实现。...泰坦尼克号沉船事件中的乘客信息表: 实现几个简单的拆分需求: 按"性别",把数据拆分到不同的工作表,工作表名字使用"性别(值)" 按 "性别"、"船舱等级",把数据拆分到不同的工作表,工作表名字使用"...性别(值),船舱等级(值)" 按 "性别" ,把数据拆分到不同的工作簿(文件),文件名字使用"性别值.xlsx",每个对应文件中,按 "船舱等级",拆分到不同的工作表,工作表名字使用"船舱等级(值)"...---- 需求2:按 "性别"、"船舱等级",把数据拆分到不同的工作表,工作表名字使用"性别(值),船舱等级(值)" 先看 pandas : 再看vba: 与之前需求变动非常少,因为本身需求表达变动也不多...---- 数据的传递 需求3:按 "性别" ,把数据拆分到不同的工作簿(文件),文件名字使用"性别值.xlsx",每个对应文件中,按 "船舱等级",拆分到不同的工作表,工作表名字使用"船舱等级(值)"

    3.8K10

    你真的会玩SQL吗?让人晕头转向的三值逻辑

    我们筛选为某列值为NULL的行,一般会采用如下的方式:select * from tb where col=null 但这无法得到我们想要的结果的,正确的方式是col is null 为什么呢?...这就涉及到三值逻辑。 三值逻辑 在SQL中逻辑表达式的可能值包括TRUE、FALSE和UNKNOWN。它们被称之为三值逻辑。 三值逻辑是SQL所特有的。...(建设表中包含一个CHECK约束,要求salary列的值必须大于0,向该表插入salary为NULL时可以被接受,因为(NULL>0)等于UNKNOWN,在check约束中被视为和TRUE一样) 在筛选器中比较两个...NULL值将得到UNKNOWN,它会被当作false处理,就好像其中一个NULL不等于另一个NULL。...排序操作和分组操作认为两个NULL值是相等的。 如果表中有一列定义了UNIQUE约束,将无法向表中插入该列值为NULL的两行。 GROUP BY 子句把所有NULL值分到一组。

    96980
    领券