V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huangz
V2EX  ›  程序员

分享您的 SQL 故事,获取《SQL 实战》赠书!

  •  
  •   huangz ·
    huangzworks · 1 天前 · 1810 次点击

    各位 V2EXer 好,我是黄健宏,继上次《 Redis 应用实战》赠书活动之后我又来啦!

    这次给大家带来的赠书是我最新的翻译作品《 SQL 实战》,一本非常棒的 SQL/PostgreSQL/数据分析入门&进阶图书,希望大家会喜欢。

    以下是本次赠书活动的具体规则:

    • 请回复本帖,写出您或您的公司正在使用什么 SQL 系统(如 MySQL 、PostgreSQL 、Aurora 等),以及你们使用 SQL 完成什么工作(存储什么数据,实现什么模块等)

    • 我会从大家的回复中挑选出 3~5 条我认为有趣的回复,并向这些回复的作者每人赠送《 SQL 实战》图书 1 册

    • 本次活动到 2025 年 3 月 24 日 0 时截止,活动赠书由化学工业出版社提供,本人保留所有解释权

    欢迎大家踊跃参与,分享您的有趣 SQL 故事!


    了解《 SQL 实战》的更多信息请访问本书主页huangz.works/sql/,也可以直接通过京东淘宝购买。

    37 条回复    2025-03-20 18:03:27 +08:00
    wxyrrcj
        1
    wxyrrcj  
       1 天前   ❤️ 1
    我们目前主要使用 MySQL 和 达梦数据库,主要用 SQL 来完成以下工作:

    数据统计与分析:
    我们经常需要从海量数据中提取关键指标,生成各种统计报表。比如,通过复杂的聚合查询和窗口函数,我们能够快速计算出用户的活跃度、订单的成交率等核心数据。

    逻辑实现:
    在 SQL 的使用上,我们尝试过两种不同的方式:

    拆分 SQL 在程序中组合逻辑:对于一些复杂的业务逻辑,我们会将 SQL 拆分成多个简单的查询,在程序中进行组合和处理。这种方式灵活性强,便于调试和维护。
    完全使用 SQL 实现逻辑:对于一些需要高效执行的场景,我们会尽可能将逻辑写在 SQL 中,比如通过存储过程或复杂的嵌套查询来实现。这种方式可以减少程序与数据库的交互次数,提升性能。
    数据存储与管理:
    我们使用 MySQL 存储用户信息、订单数据、日志记录等结构化数据,同时通过达梦数据库处理一些对国产化有要求的业务场景。SQL 帮助我们高效地管理这些数据,确保数据的完整性和一致性。

    最近我们还在探索如何优化 SQL 查询性能,比如通过索引优化、查询重写等方式来减少数据库的负载。

    期待这次的《 SQL 实战》能带来更多实用的技巧和深入的知识!感谢这次活动,也希望有机会能获得赠书!
    defunct9
        2
    defunct9  
       1 天前
    来一本垫桌子角
    csfreshman
        3
    csfreshman  
       1 天前   ❤️ 2
    先不买了,上次买的作者的 redis 书还没看完,支持一波作者了
    imicksoft
        4
    imicksoft  
       1 天前 via Android   ❤️ 1
    今年还真遇到了。
    开发一个小程序,做 ETF 基金和股票的交易记录,没买数据服务器,用的免费的数据库,最开始用的 wsfdb 的 mysql ,大小只有 10M ,用了一段时间,太小了后来存不进去数据了。
    只好又找啊找啊,找到了 MemFireDB 网站,提供 1G 容量的 PostgreSQL ,从没有用过这种数据库,于是晚上又边学习边改代码,PostgreSQL 不区分大小写,坑了一个星期,后来才知道要加引号,花了差不多一个月刚好,MemFireDB 又不免费了,只好再找免费云数据库,重新换回了 mysql 。
    [哭.gif]
    tangmanger
        5
    tangmanger  
       1 天前
    哈哈 研究下 sql 怎么生成 shell 目录
    GreysonYee
        6
    GreysonYee  
       1 天前   ❤️ 1
    我与 SQL 的故事,除了开发以外。。。。。马上 4 月份自考 《数据库系统原理》了要。
    qwer666df
        7
    qwer666df  
       1 天前   ❤️ 1
    主系统是 MySQL ,主要用它来存储货币流水数据。有一个业务是查询统计单日交易额。
    但是这个表一直累计了一两年,大概有 20 亿条。在 MySQL 里进行大数据查询时候基本用不了。
    要做一些复杂查询,查询周报的时候,需要一分钟才能出结果。要是查询跨月的数据,基本就直接就锁死数据库。
    前端时间,研究了一下把数据同步到了 ClickHouse 。同样的操作在 MySQL 中需要 30 多秒的查询,在 ClickHouse 里能在大概 2 秒时间内完成,属于是保住饭碗了
    FreeWong
        8
    FreeWong  
       1 天前
    送我的话,我保证不用来垫桌角,认真阅读,对得起 OP 的辛苦翻译工作。
    fuchish112
        9
    fuchish112  
       1 天前   ❤️ 2
    mysql ,还是期望多一点应用侧的 sql 经验,不同业务场景对 sql 运用和使用
    Dogergo
        10
    Dogergo  
       1 天前   ❤️ 1
    刚入行的时候,我所在的第一家公司,mysql 基本都要求单表查询,当时使用 PHP 来着,往往是在查完主数据之后,再查其他的附属信息,最后便利结果,把附属信息加回去。

    后来去的公司,基本都是能一条 SQL 搞定的就不会多写,由于业务的复杂性增加,往往一条 SQL 需要链接 4-6 个表。直接面向 SQL 编程了属于是。

    再后来,公司业务转向广告投放业务,数据量大增,我跟着做了数仓,这里吐槽一下阿里的 ADB ,一不能用联合索引,二分析个语句给出的执行过程实在是太不直观了。

    到现在我也不是很明白,什么,是最好的实践,只是跟着业务的规范走。团队是什么风格,就跟着写什么风格。
    limyel
        11
    limyel  
       1 天前   ❤️ 1
    说点题外话,每次在 x 上看作者大佬怼那些脑残真的很爽😂
    flyz
        12
    flyz  
       1 天前   ❤️ 1
    @imicksoft

    aiven.io 有免费的 mysql
    1 dedicated VM
    1 CPU per VM
    1GB RAM per VM
    5 GB total storage
    ourfor
        13
    ourfor  
       1 天前   ❤️ 1
    存你想存,用你想用😂
    linxb
        14
    linxb  
       1 天前   ❤️ 3
    是时候展示真正的 sql 实战了,我想没有谁比我更需要这本书

    zzlettle
        15
    zzlettle  
       1 天前   ❤️ 1
    个人开发者,现在主要用 postgresql ,开发 web 项目.
    具体 sql 的语言基础不是很好
    业务方面都是框架提供的模型然后 ORM 来做数据的操作
    一直想深入学习下 sql 的知识,提升下这方面的不足.
    现在很多开发 web 的人,估计都跟我一样.问 SQL 也都是知道一点基础方面的东西
    平常业务都是 ORM 来操作数据库
    希望能又一本好的书,把 SQL 的方面介绍的深入浅出
    有理论有有实践操作
    否则数据库方面越来越多的人都会依靠 ORM 来做了
    aqx
        16
    aqx  
       1 天前 via iPhone   ❤️ 1
    不要书,单纯支持一下 op
    huangm
        17
    huangm  
       21 小时 54 分钟前   ❤️ 1
    以前的公司多是用 MySQL ,后面自己创业开公司,就全部换成了 PostgreSQL 。因为我发现用了 PostgreSQL 之后,很多慢查询的问题都可以自然规避了,甚至在语法上的不支持就规避了程序员写出一些执行效率低的 SQL 。当然大数据的东西还是结合用了 MongoDB 来实现。
    coolloves
        18
    coolloves  
       16 小时 6 分钟前   ❤️ 1
    公司没有 dba,阅读了带佬的说,我应该可以顶上去吧
    saxon
        19
    saxon  
       15 小时 25 分钟前   ❤️ 1
    公司在用 Mysql ,hive iceberg ,我们用 SQL 主要完成运营统计、QA 审计工作~ 希望中奖
    panxi
        20
    panxi  
       15 小时 24 分钟前   ❤️ 1
    我自学就是从 mysql 开始的, 第一个公众号也是分享 mysql 技巧的, 第一本书是 mysql 必知必会,卧槽, 这本书简直是背过了一样,那个时候太牛逼了
    NoKey
        21
    NoKey  
       15 小时 19 分钟前   ❤️ 1
    现在用的 pg
    有个很麻烦的问题还没解决,每天会产生大量数据,这些数据都是要拿来汇总统计,使用方式具备关系型数据库特征,无法用 es 来装,也就是这场景下,还只能用 pg 或者 mysql 这种数据库。一天要产生几百万的数据,数据存储量也大,然后用户要看的时间跨度还挺大,分库分表都麻烦,就算分库分表,因为数据量这么大,也可能分出大量的库表出来,头疼
    lyz1990
        22
    lyz1990  
       15 小时 9 分钟前   ❤️ 1
    sql 故事没有,sql 事故倒是挺多的,哈哈
    imicksoft
        23
    imicksoft  
       15 小时 5 分钟前 via Android
    @flyz 谢谢分享,我去看看
    xiangbohua
        24
    xiangbohua  
       14 小时 37 分钟前
    这就不得不提到刚工作那会是真的没经验,到初创公司工作做了一个类似秒杀的项目,项目很小很初级,使用人也不多,个别表的数据倒是有几万,现在随便哪个开发听起来都是小儿科的东西。

    一开始用卡的不行,火烧眉毛的研究,后来猛然发现没加索引啊这是,于是快速加上索引一下就流畅了。

    经过那次事件之后,就找来各种数据库的书研究,到现在印象还十分深刻。
    8bit
        25
    8bit  
       14 小时 19 分钟前
    现在用 mysql8.0 ,要向 opengGauss/Pg 迁移,想想都头大
    mmc321
        26
    mmc321  
       13 小时 50 分钟前
    cy
    zzf2019
        27
    zzf2019  
       13 小时 13 分钟前
    我也来当个分母吧。mysql 我还真的用的蛮多的
    lazyyz
        28
    lazyyz  
       13 小时 7 分钟前
    正在学习 SQL ,最近刚从图书馆里借了 MySQL 8 快速入门(视频版)和 SQL 必知必会(第 5 版),大佬的新书看上去挺适合接下去的我,哈哈
    chaffy
        29
    chaffy  
       13 小时 5 分钟前
    我 shell 写得还行,sql 写得不好,但我又是一个 dba ,所以大大,我需要此书!
    psyer
        30
    psyer  
       12 小时 56 分钟前 via Android
    正在学数仓,需要学复杂的开窗查询,连续登录,合并区间(◕_◕)/✏️ 正需要这个
    ZDM
        31
    ZDM  
       12 小时 26 分钟前
    我司部门,无数的数据模型,且复杂的查询。刚需。
    fox0001
        32
    fox0001  
       12 小时 22 分钟前 via Android
    用 MySQL 做数据集合处理,一千万左右的量级,处理需要几小时。后来把数据导出,用 pandas 处理,秒出结果。
    cobbage
        33
    cobbage  
       12 小时 22 分钟前 via Android
    干了一年运维优化了些查询。tob 的客户有用 oracle,mysql5-8
    wukongkong
        34
    wukongkong  
       11 小时 36 分钟前 via Android
    当年不会复杂 sql ,直接全部返回前端,前端处理……
    foufoufm
        35
    foufoufm  
       11 小时 35 分钟前
    我们目前主要使用 MySQL 来做报表中间库:通过采集各个业务系统的数据集成到中间里,然后使用 sql 数据建模得到想要的维度数据和事实数据,最后将查询结果固化落盘下来形成结果表,最终配合 FineReport 形成领导们看到的系统报表。

    核心差异点在于:因为人少,所以采取的原则是,“用空间换时间”。基本上数据查询能落盘的落盘,实现一表对一表(数据库结果表对报表),来展现报表数据,这样后期也方便维护,而存储和查询性能暂时不做考虑。特别是在成熟度模型下,目前我们仅在 LV1 的位置,能够确保数据能出、数据能准已经是超出预期的数据建设了。

    具体实现中,我们通常采用从业务 DB 到中间库做查询的场景,原则上尽量消解掉长 SQL ,而是使用 CTE ,拆分成多个片段式 SQL 来方便编码和定位,但具体而言 SQL 如何编写更有规范、更有维护性这块我们还在探索,期待《 SQL 实战》能给我们带来更多的实战经验,解决传统行业数据脏乱差的问题,或提供助力!

    感谢这次活动,也希望有机会能获得赠书!
    wxd21020
        36
    wxd21020  
       11 小时 19 分钟前
    首先还是感谢 OP ,PG 数据库使用者一枚, 目前公司所有的系统应用(几百个吧),使用的全是 PG 数据库,绝大多数都是使用的 pacemaker+corosync 一主两从集群,全部是我们自己或者同事搭建运维;从以下几点说明一下有一本 PG 数据库书籍的必要性:
    1.目前遇到问题基本都是问大模型,问 google ,需要一本系统的书来学习,时刻参考。
    2.目前身边的同事和自己在这方面感觉也都不是很专业,需要进一步提升。
    3.之前也遇到很多数据库出现问题的时候,也都是一点点摸索解决;比如数据库的一些配置,数据库使用过程中由于 sql 或者应用配置不规范导致数据库告警、崩溃等;甚至有一次集群无法启动,临时申请服务器重新搭建后进行数据迁移。

    最后,即使没有获得此书,也感谢 OP 为技术 er 们提供的知识。
    herm2s
        37
    herm2s  
       6 小时 37 分钟前
    我们公司主要使用的是 MySQL ,我刚加入公司时负责的是数据报表模块,经常碰到各种多表关联+大数据量查询,一行 SQL 能写到几百行,一次查询能到几十秒,尝试了各种优化,如索引分析、语句优化、读写分离、接口缓存等等,终于将查询速度优化了下来。也是在那段时间,我的 SQL 能力突飞猛进,后来我也将那个模块迁移到了列式存储数据库,算是又拓宽了技术视野。
    纵观我的职业生涯,SQL 在其中扮演了十分重要的角色,陪伴着我从一个刚入行的菜鸟到高级工程师,后来我在代码设计和架构优化上学到了新的知识,反而不会再向出入行业时那样一味压榨数据库能力了,正好也希望能够获得赠书,来温故知新,补补更多的 SQL 知识。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:40 · PVG 00:40 · LAX 09:40 · JFK 12:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.