zoukankan      html  css  js  c++  java
  • MySQL的那些事

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

    一、索引

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

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

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

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

    二、SQL审核

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

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

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

    SQL 审核,避免删库跑路!

    三、备份

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

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

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

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

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

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

  • 相关阅读:
    P1149 火柴棒等式
    SpringMVC之reset风格和form表单格式的curd
    SpringMVC之转发重定向
    文件下载
    文件上传
    数据库分页
    使用代理创建连接池 proxyPool
    Proxy 示例
    Proxy基础---------获取collection接口的构造跟方法
    javaBean中 字符串 转 date 类型转换
  • 原文地址:https://www.cnblogs.com/juemuren4449/p/12382763.html
Copyright © 2011-2022 走看看