受够了查个数据要排队等开发,我做了一个谁都能用的数据库查询工具

0 阅读8分钟

受够了查个数据要排队等开发,我做了一个谁都能用的数据库查询工具

先说结论:工具已经写好了,在公司内部用了一段时间,不管是技术还是非技术同事,都在用。最近在整理代码和文档,准备不久后公开。


你有过这些经历吗?

场景一:想查个数据,只能找开发

     产品经理                    开发
        │                          │
        │  "我想查数据""好,我帮你查"
        ├────────────────────────> │
        │                          │  (半小时后)
        │  "还没好吗?"             │
        ├─────────────────────────>│
        │                          │  "等一下,我连数据库..."
        │                          │  (又半小时后)
        │  "😓 这么麻烦"            │
        ◔─────────────────────────>│

           ┌──────────────────┐
           │  产品经理内心OS:  │
           │  "查个数据而已啊" │
           └──────────────────┘

场景二:每次查同样的数据都要重新写 SQL

     运营                         开发
        │                            │
        │  "查上个月活动数据""好,我写 SQL"
        ├───────────────────────────>│
        │                            │  💻 💻 💻
        │                            │
        │  (过了一周)                 │
        │                            │
        │  "又要查这个月的"            │
        ├───────────────────────────>│  "再写一遍..."
        │                            │
        │                            │  ╮(╯_╰)╭
        │                            │  "同样的 SQL 写了八百遍"

           ┌──────────────────────┐
           │    开发的内心戏:      │
           │  ╭──╮   ╭──╮          │
           │  │😫│   │😤│          │
           │  ╰──╯   ╰──╯          │
           └──────────────────────┘

场景三:新人不知道怎么写查询语句

        新人(???)                    导师(◔_◔)
            │                            │
            │  "我想查用户表的数据"       │
            ├───────────────────────────>│
            │                            │
            │                            │  "你想查什么?"
            │                            │  "哪个字段?什么条件?"
            │                            │
            │  "我不知道..."             │
            ├───────────────────────────>│  "帮我查一下常用的吧"
            │                            │
            │                            │  (内心:又来了...)

                  ┌───────────────────┐
                  │  新人的内心独白:   │
                  │      ╭──╮          │
                  │     ( >_< )         │
                  │      /   \          │
                  │     "我不会啊"      │
                  └───────────────────┘

场景四:运营要做活动,不知道数据在哪

运营:我想看下活动的订单数据,按地区统计
开发:你要写 SQL 查询...
运营:我不会写 SQL...
开发:那我来写...
运营:(内心:如果有个现成的模板就好了)

场景五:每个人的查询都是重复造轮子

     A同事:写 SQL 💻
           │
           ▼
     B同事:写 SQL 💻  (同样的事情)
           │
           ▼
     C同事:写 SQL 💻  (还是同样的事情)
           │
           ▼
     D同事:写 SQL 💻  (仍然是同样的事情)
           │
           ▼
        ... (N 个同事后...)

              ╔═════════════════════╗
              ║  同样的 SQL 写了 N 遍  ║
              ║      ╥︿╥             ║
              ║     (︶︿︶)           ║
              ╚═════════════════════╝

这些问题,我全都遇到过

我们公司的数据库环境:

  • 4 个环境(dev/qa/uat/prd)
  • 3 种数据库类型(MySQL/PolarDB/PostgreSQL)
  • 70+ 个实例
  • 几百个业务库

不仅是技术人员头疼,产品、运营、数据分析也都深受其害:

  • 产品想看数据,要排队等开发
  • 运营想拉数据,不会写 SQL
  • 数据分析每次都要重复写查询
  • 新人不知道怎么查,问一圈人
  • 同样的查询,团队里重复写了 N 遍

直到有一天,我决定自己写个工具。


我做了一个什么工具

简单说,就是一个 谁都能用的数据库查询工具

        ┌─────────────────────────────────────┐
        │                                     │
        │     🌟 数据库查询工具 🌟              │
        │                                     │
        │   ✅ 不需要懂技术                     │
        │   ✅ 不需要知道数据库在哪              │
        │   ✅ 打开网页就能查                    │
        │   ✅ 团队共享 SQL 模板                │
        │                                     │
        │         🎯 谁都能用!               │
        │                                     │
        └─────────────────────────────────────┘

不需要懂技术,不需要知道数据库在哪个服务器,打开网页就能查。


核心功能(预览)

1️⃣ 四级目录结构,一眼看懂

┌──────────────────────────────────────────────────────────┐
│                      🏢 数据库层级图                       │
├──────────────────────────────────────────────────────────┤
│                                                          │
│   🌍 生产环境                                             │
│     │                                                    │
│     ├── 🐬 MySQL                                         │
│     │     │                                              │
│     │     └── 📦 某个业务实例                             │
│     │           │                                        │
│     │           └── 🗄️ 用户数据库                         │
│     │                 │                                  │
│     │                 ├── 📋 用户表                      │
│     │                 ├── 📋 订单表                      │
│     │                 └── 📋 活动表                      │
│     │                                                  │
│     ├── 🐧 PolarDB                                       │
│     │     └── ...                                        │
│     │                                                  │
│     └── 🐘 PostgreSQL                                    │
│           └── ...                                        │
│                                                          │
│   🧪 测试环境                                             │
│     └── ...                                              │
│                                                          │
│   💻 开发环境                                             │
│     └── ...                                              │
└──────────────────────────────────────────────────────────┘

环境 → 数据库类型 → 业务实例 → 具体数据库

层级清晰,非技术人员也能看懂


2️⃣ SQL 模板共享 ⭐️ 爆款功能

这是最实用的功能,团队里最爱用的:

┌───────────────────────────────────────────────────────────────────┐
│                    📋 SQL 模板库 (团队共享)                         │
├───────────────────────────────────────────────────────────────────┤
│                                                                   │
│  🔥 查询昨日新增用户                                              │
│     └── 作者:产品小姐姐 | 🔥 使用 328 次                          │
│         📝 SELECT * FROM users WHERE DATE(created_at) = ?        │
│                                                                   │
│  🔥 查询活动订单数据(按地区统计)                                  │
│     └── 作者:运营老王 | 🔥 使用 256 次                            │
│         📝 SELECT region, COUNT(*) FROM orders WHERE ...         │
│                                                                   │
│  🔥 查询用户留存率                                                │
│     └── 作者:数据分析组 | 🔥 使用 189 次                          │
│         📝 复杂留存计算 SQL...                                    │
│                                                                   │
│  🔥 查询 Top10 畅销商品                                            │
│     └── 作者:电商运营 | 🔥 使用 412 次                            │
│         📝 SELECT product_name, SUM(amount) ...                  │
│                                                                   │
├───────────────────────────────────────────────────────────────────┤
│                                                                   │
│  💡 使用流程:                                                    │
│     ① 选择模板    ➔    ② 填入参数    ➔    ③ 点击执行    ➔    ✅ 搞定 │
│                                                                   │
│     示例:选择 [查询昨日新增用户]                                  │
│           ➔ 填入日期:2024-01-15                                  │
│           ➔ 点击执行                                            │
│           ➔ 看到结果!                                           │
│                                                                   │
└───────────────────────────────────────────────────────────────────┘

不用写 SQL,不用懂技术,选模板就行。

团队共享,一个人创建,所有人都能用。


3️⃣ 搜索功能,一秒定位

想查数据?不知道表在哪?

搜一下就知道了。

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│    🔍 搜索框                                                │
│    ┌─────────────────────────────────────────┐              │
│    │  🔎 输入表名或数据库名...                │              │
│    └─────────────────────────────────────────┘              │
│                                                             │
│    搜索: "用户表"0.02秒    │
│                                                             │
│    ┌───────────────────────────────────────────────────┐    │
│    │ 📁 生产 - MySQL - 用户实例 - user_db.user        │    │
│    │    💬 用户基本信息表                              │    │
│    │    📊 约 120万条数据                              │    │
│    ├───────────────────────────────────────────────────┤    │
│    │ 📁 测试 - PolarDB - 用户实例 - user_test_db.user │    │
│    │    💬 测试环境用户表                              │    │
│    │    📊 约 5万条数据                                │    │
│    ├───────────────────────────────────────────────────┤    │
│    │ 📁 开发 - MySQL - 本地实例 - user_dev_db.user    │    │
│    │    💬 开发环境用户表                              │    │
│    │    📊 约 1000条数据                               │    │
│    └───────────────────────────────────────────────────┘    │
│                    👆 点击任意结果直接定位                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

点击直接定位到表,不需要问任何人


4️⃣ 只读模式,安全放心

担心误操作删数据?

这个工具只允许查询,禁止修改

┌─────────────────────────────────────────────────────────────┐
│                      🛡️ 安全防护盾 🛡️                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ✅ 允许的操作 (安全放心)                                     │
│  ├── SELECT        ──→ 查询数据                             │
│  ├── SHOW          ──→ 显示信息                             │
│  ├── DESCRIBE      ──→ 查看表结构                            │
│  ├── EXPLAIN       ──→ 执行计划分析                          │
│  └── SQL 模板      ──→ 使用团队共享模板                      │
│                                                             │
│  ❌ 禁止的操作 (防止误操作)                                   │
│  ├── INSERT        ──→ ✗ 禁止插入                           │
│  ├── UPDATE        ──→ ✗ 禁止更新                           │
│  ├── DELETE        ──→ ✗ 禁止删除                           │
│  ├── DROP/CREATE   ──→ ✗ 禁止修改表结构                      │
│  └── TRUNCATE      ──→ ✗ 禁止清空表                         │
│                                                             │
│  📌 额外安全措施:                                            │
│  ├── SQL 注入检测     ──→ 自动拦截可疑语句                   │
│  ├── 多语句拦截       ──→ 禁止一次执行多条                   │
│  └── 行数限制         ──→ 默认最多返回 1000 行               │
│                                                             │
│  🎯 DBA 可以放心放权限给所有人!                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

可以放心开放给所有需要查数据的人。


5️⃣ 浏览器打开就能用

  • 不用安装任何软件
  • 配置一次,团队复用
  • 打开网页,登录就能用

像用百度一样简单。


6️⃣ 支持多种数据库

  • MySQL / PolarDB / PostgreSQL

SQL 模板共享的价值

对产品/运营/数据分析:

痛点SQL 模板解决
不会写 SQL选模板填参数就行
每次查同样数据要找开发一次创建,反复使用
不知道常用查询怎么写看同事的模板就学会了

对技术开发:

痛点SQL 模板解决
同样 SQL 写了八百遍写一次,团队共享
新人老问怎么查让新人看模板就行
每个人查询方式不一样统一模板,结果一致

对团队整体:

  • 减少重复劳动 — 同样的查询不用重复写
  • 沉淀查询经验 — 常用查询沉淀成团队资产
  • 降低技术门槛 — 不会 SQL 也能查数据
  • 提升协作效率 — 模板共享,不用互相依赖

谁适合用这个工具?

岗位痛点这个工具能帮你
产品经理想看数据要找开发,不会写 SQL用现成模板,填参数就能查
运营同学每次查数据都要等人,同样的查询重复做保存常用查询,一键执行
数据分析经常写类似的 SQL模板化管理,提高效率
前端开发验证接口数据,不知道表在哪自己定位,用模板查
测试工程师验证 bug 需要查数据库只读模式,模板查询更快捷
后端开发同样 SQL 写了无数遍写一次,团队共享
DBA不敢放权限,怕误操作只读模式,安全可控
新人不知道怎么查,不知道地址,不会写 SQL看同事模板,抄作业也能上手

使用效果

这套工具我在公司内部用了一段时间,各岗位同事的反馈

产品经理:"最爱的就是模板功能,查数据选个模板填日期就行,不用麻烦开发了"

运营同事:"把常用的查询都保存成模板,每天拉数据快多了"

数据分析:"团队共享模板库,不用每个人都从零写 SQL"

后端同事:"以前同样的 SQL 被问了八百遍,现在直接看模板"

新人:"不会写 SQL?看同事的模板抄一下就学会了"

DBA 同事:"只读模式很安全,模板查询更放心"


接下来的计划

工具已经打磨得差不多了,我打算:

  1. 整理代码和文档
  2. 写一份傻瓜式部署教程
  3. 工具V1.0公开出来

想要的举手 🙋‍♂️

写这篇文章主要有两个目的:

一是看看大家有没有同样的痛点

不管你是产品、运营、数据分析,还是技术开发,只要你需要查数据库,这个工具都能帮你。

特别是经常需要查同样数据的同学,SQL 模板功能会大幅提升你的效率。

二是看看有没有人想要这个工具

如果需求量不错,我就有动力把代码整理好公开出来。


如何获取

目前代码还在整理中,预计不久后可以发布。

想要的兄弟可以:

  1. 关注我 — 发布后会第一时间通知
  2. 评论区留言 → "想要",人多我就更有动力赶紧整理
  3. 私信我 — 可以提前聊聊,上线了提醒你

写在最后

这个小工具虽然不大,但确实解决了我们团队的沟通效率问题。

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   使用前 😱                          使用后 😎               │
│                                                             │
│   产品 → 等开发 → 等结果            产品 → 选模板 → 搞定     │
│   运营 → 问开发 → 等回复            运营 → 一键执行 → 搞定   │
│   新人 → 到处问 → 脸懵逼            新人 → 抄作业 → 搞定     │
│   开发 → 同样问题答八百遍            开发 → 终于清静了 🎉    │
│                                                             │
│   📊 团队效率提升:约 300%                                   │
│   🕐 每天节省时间:约 2小时/人                               │
│                                                             │
│              ┌─────────────────┐                            │
│              │   👍 真香!     │                            │
│              └─────────────────┘                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘
  • 产品不用等开发查数据,用模板自己就能查
  • 运营保存常用查询,一键执行
  • 团队共享 SQL 模板,不用重复造轮子
  • 新人看模板就能学会,不用手把手教
  • DBA 可以放心放权限给所有人

如果你觉得这个想法有用,或者你团队也有类似问题:

点个赞,让更多人看到。

说不定你的队友也在找这样的工具呢 😉


PS:评论区留言"想要"的人多,我就加快整理速度!