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

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

    一、索引

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

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

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

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

    二、SQL审核

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

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

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

    SQL 审核,避免删库跑路!

    三、备份

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

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

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

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

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

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

  • 相关阅读:
    Django 用ModelForm批量保存form表单(非常实用的方法) mfor_verity项目
    jquery ajax异步提交表单数据的方法
    python字符串转换成变量的几种方法
    django 线上线下使用不同的数据库 上线:mysql 线下sqlite3 以及debug模式的开和关
    django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
    nonce和timestamp在Http安全协议中的作用
    Web API接口 安全验证
    .Net环境下的缓存技术介绍
    .Net缓存管理框架CacheManager
    在asp.net web api中利用过滤器设置输出缓存
  • 原文地址:https://www.cnblogs.com/juemuren4449/p/12382763.html
Copyright © 2011-2022 走看看