临时工: 读书笔记--重读老书 《品悟性能优化》与 什么是合并设计

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2330人左右 1 + 2 + 3 + 4 +5 + 6) 新人奖直接分配到6群,5群已经超430停止自由申请。

8e7e3600151fea04d8a6d1a78032b21b.png

9c11204beb36c2f4238c67c9e78d6670.png

2024-4-16 有同学问我,合并设计这个问题,实际上我想起来这个事情应该是上个月的事情了,我提出一个问题,关于什么是合并设计的问题。

a30e99b00c3915e087da3251718de585.png

今天借着读书笔记来说说此时,再说合并设计前,我就的继续说这本书的高质量IT系统的正确认识,什么是高质量的IT 系统,高质量的IT 系统中数据库应该不会太LOW ,但高质量的数据库系统存在的项目,不一定是高质量的IT系统。这是一个必然和充分条件的关系。

6cac26f265f39b9bb9f62776cd050b83.png

很多系统中在需求分析的阶段就存在问题,如这本书中的这个章节的那个项目经理一样,不主动,不拒绝,不负责的三不渣男,只要有一个这些步骤的掌管核心工作的人,做了3不,那么这个系统的高质量就岌岌可危了。

在数据库优化的工作中,或者一个项目中对数据库提出需求的过程中,不少的任务和需求的优化都不是数据库可以决定的,经常有人说做好本职工作,但做好了本职工作,也未必这个工作的结果就能好,因为决定这个工作好不好的,并不在你,或决定性的部分不在你。

所以我们在工作中,出了把自己的工作做好以外,还需要做边际性的延伸,比如DBA 有没有必要,去听取需求分析,大概率是不需要的,但到了系统设计的阶段,到底需要不需要DBA 的介入,我认为是需要的,而系统开发和系统测试中,DBA 是必须要参加的,并根据相关的系统设计,提出在系统设计中与数据库有关的部分,提前考虑性能的问题。

如决定系统中使用的数据库由MYSQL为主,那么数据量,历史数据归档,表设计,宽表,索引设计,查询设计,等这些部分都是与这个部分相关,保证系统稳定性的部分。

而如果使用POSTGRESQL 可能这方面在主机的架构,高可用使用配置,默认schema 的设计,查询中避免出现需要marjor join 非等值的情况,等等都是需要我们注意的事情。 

同时在系统开发中,JAVA 程序如何处理链接,保持链接,废弃链接,以及最大链接数据的需求等等,都可能与分库有关,或者与系统的硬件配置有关。如果此间不考虑清楚,提出问题,那么硬件的同学也不会考虑太多,后期扩展性的问题,尤其在项目初期,考虑不周的情况,为后续数据库的垂直扩展造成的麻烦。

写到这里,合并设计,这里我记得是之前在群里提出了一个关于索引的问题,我给出了一个术语合并设计。记得当时提出的是,一个数据库系统的主键系统,需要进行多个字段联合使用才能作为主键。

DBA 的同学对这个持有不同的观点,有的认为是很正常的,有的认为对性能影响较大。这些同学对于这些观点的产生,本身也是基于自身的属性来提出的,比如MYSQL的DBA 可能不太会同意,多字段主键的行为,因为这的确与数据库的数据DML 性能有关,而ORACLE PG的同学对于多字段主键的事情本身,可能就不是那么敏感,行不行可能也只是当时的一念之差。

而这里提出的合并设计,主要针对的是超出DBA 角度的观点,来提高一个维度来提出主键设计。

1  主键设计与需求有关,为什么会产生多个字段,作为联合主键的事情,来源是什么,很少DBA 会考虑这个问题。从需求来看分析,多字段形成的主键是否有必要。是否可以采用不同的方案,比如主键与业务逻辑无关的情况,那么多主键的设计就不是必须的。

或者采用多键值通过算法进行唯一值计算的方案,来将多个键值通过程序的手段,变成一个字段的值,通过这个值称为主键,来进行主键的设计。

而多字段称为主键中,还有一问题就是这些字段的值的变化,导致主键不唯一的情况,那么此时是我们用方案1 多主键 还是 2 多主键合并成 单键值的方案。这就需要推敲了。

2  多键值主键设计中,最大的问题是什么,如果这三个键值都是固定的大小,当然是好的,如果这里面有字符的问题,那么多主键是否还是一个好的设计,这必然提出疑问。

3  多主键设计中,唯一值算法的问题,算法简单,则可能有导致碰撞,那么可能我们需要更好的哈希函数,更好的hash算法,和更好的数据结构。

最终的目的是我们在发现多字段主键设计中存在问题的根源,并消灭它,而不是怪开发,怪自己的命运不济。so wake up

置顶文章:

临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话

临时工访谈:我很普通,但我也有生存的权利,大龄程序员 求职贴

临时工说:DBA 是不是阻碍国产数据库发展的毒瘤 ,是不是?从国产DB老专家的一条留言开始

SQL SERVER  我没有消失,SQL SERVER下一个版本是2025  (功能领先大多数数据库)

往期热门文章:

PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定

感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验

临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集

MongoDB 不是软柿子,想替换就替换

临时工说: 快速识别 “海洋贝壳类” 数据库方法速递

临时工说:国产 数据库 销售人员  图鉴

PostgreSQL  熊灿灿一句话够学半个月 之 KILL -9

MongoDB  挑战传统数据库聚合查询,干不死他们的

PolarDB  Serverless POC测试中有没有坑与发现的疑问 (大妖复仇记前传)

临时工说:国内数据库企业存活   “三板斧”

临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一  (阿里云组团PK笔者实录

临时工访谈:金牌 “女” 销售从ORACLE 转到另类国产数据库 到底  为什么?

临时工访谈:无名氏意外到访-- 也祝你好运(管理者PUA DBA现场直播)

临时工说:搞数据库 光凭的是技术,那DBA的死多少次?

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?

临时工说:分析当前经济形势下 DBA 被裁员的根因

PostgreSQL PG_DUMP 工作失败了怎么回事及如何处理

MySQL 八怪(高老师)现场解决问题实录

PostgreSQL 为什么也不建议 RR隔离级别,MySQL别笑

临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者

临时工说:OceanBase 到访,果然数据库的世界很卷,没边

临时工访谈:恶意裁员后,一个国产数据库企业程序员的心声

临时工说:上云后给 我一个 不裁 DBA的理由

PolarDB for PostgreSQL  有意思吗?有意思呀

PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了

临时工说:裁员裁到 DBA 咋办  临时工教你 套路1 2 3

PolarDB  搞那么多复杂磁盘计费的东西,抽筋了吗?

临时工说:OceanBase 到访,果然数据库的世界很卷,没边

MONGODB  ---- Austindatabases  历年文章合集

MYSQL  --Austindatabases 历年文章合集

POSTGRESQL --Austindatabaes 历年文章整理

POLARDB  -- Ausitndatabases 历年的文章集合

PostgreSQL  查询语句开发写不好是必然,不是PG的锅

SQL SERVER 如何实现UNDO REDO  和PostgreSQL 有近亲关系吗

MongoDB 2023纽约 MongoDB 大会 -- 我们怎么做的新一代引擎 SBE Mongodb 7.0双擎力量(译)

MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模

MongoDB  双机热备那篇文章是  “毒”

MongoDB   会丢数据吗?在次补刀MongoDB  双机热备

临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处

POLARDB  到底打倒了谁  PPT 分享 (文字版)

PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"

PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。
截止今天已经发布  1150 篇文章

4cb45ce1d1ebbc986a51167ba0e45e52.png

4afabeee69be61b8f0295bac762e5a74.png

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值