• MySQL的那些事


    我原本是 Android 开发,后来转了项目经理,在项目开发的过程中发现一些跟 MySQL 相关的东西,就想着记录下来,以下均为个人看法,欢迎沟通交流。

    一、索引

    我们项目数据库一直用的都是 MySQL,刚上线根本没加索引,也没什么感觉。可是随着用户量的暴增,发现很多查询操作都很慢,我们一直去检查程序的流程是否出了问题,却忽略了数据库索引的问题。

    后来经过 CTO 的提醒,我们给用户表相关字段添加了索引,查询速度立马就快了!本来 32vCPU/64G 资源占用都能到 99%,加了索引之后,直接降到 3%,甚至更低!

    索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,因此,索引越多,插入、更新和删除记录的速度就越慢。

    即使加索引可能导致写入数据变慢,对于数据量大,而且频繁查询的字段,必须加索引!

    二、SQL审核

    项目上线初期,需要改库的,直接就线上操作了,情况紧急的时候,我甚至用手机直接修改过数据库。

    可是随着用户量的增加,修改数据造成的影响变得越来越大,有两次直接在线上改库就改错了,还好紧急修改了回去。幸亏不是 DELETE 忘了加 WHERE,不然只能跑路了。

    后来,随着我们有了专门的运维人员,搭建了 SQL 审核平台,开发提交 SQL 之后,由负责人审核,通过之后再由运维人员执行,大大提高了线上操作的安全性。

    SQL 审核,避免删库跑路!

    三、备份

    对于普通的业务性公司来说,最重要的资料莫过于数据库里的用户数据了,数据如果突然没了,那公司可能都得跟着完蛋,所以数据备份很重要。

    我们公司最开始没有运维人员,全是晚上加班或者上线之前手动备份一下数据库,效率虽然低,但是至少做到了备份。

    后来有了运维人员,备份都是自动操作了,但有一次发现一个问题,就是备份的时候,导致库锁死了,辛亏是个从库,主要是在内部系统使用。

    做好数据库备份,一切都可以重来!

    作为一个前端开发,也写过一点后台代码,我认为技术人员,即使不是后台开发人员,也应该多少了解一下 SQL,基本的增删改查学习一下,对平时的开发和查找问题好处多多。在此,我推荐「廖雪峰」老师的「SQL 教程」。

    欢迎访问的个人博客:掘墓人的小铲子

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/juemuren4449/p/12382763.html
Copyright © 2020-2023  润新知