提示:近期有空整理下mysql设计注意点吧


一、表设计方面

  1. 建表要求三范式
  2. 5个必须字段is_del,create_time(CURRENT_TIMESTAMP),create_user,update_time(CURRENT_TIMESTAMP),update_user
  3. 查询规避掉*
  4. 对于枚举或者删除类型使用tinyint
  5. string类型使用索引就得not null,频繁的要考虑,固定类型也不一定需要加,text大字段不加
  6. 如果字段超过10k的存储了建议分表
  7. 数据量大的时候考虑水平或者垂直拆表了
  8. 不存储明文密码、手机号、身份证等

二、代码设计方面

  1. 规避使用连表查询
  2. 查询list尽量使用map方式,批量查询
  3. 不使用带计算的sql
  4. 能使用缓存替代的尽量替代

总结

工作中其实养成好的编码和设计习惯能规避掉大部分慢查询和慢api,这些做好了进阶就是项目设计了,这才是接下来需要加油的。

关于api的表优化及代码优化小结的更多相关文章

  1. SQL优化 MySQL版 - 单表优化及细节详讲

    单表优化及细节详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:本文章需要MySQL数据库优化基础或观看前几篇文章,传送门: B树索引详讲(初识SQL优化,认识索引):htt ...

  2. 表优化 altering table OPTIMIZE TABLE `sta_addr_copy`

    表优化 altering table OPTIMIZE TABLE `sta_addr_copy` [总结] 1.实际测试的结果是,在state sqlaltering table OPTIMIZE ...

  3. topo排序 + 用邻接表优化后的

    输入数据: 4 61 21 32 33 42 44 2 4 61 21 32 33 42 41 2 topo排序为偏序: #include<stdio.h> #include<que ...

  4. 详解MySQL大表优化方案( 转)

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  5. Windows 和 Linux 的IPC API对应表

    原文出处:http://blog.csdn.net/zhengdy/article/details/5485472                                           ...

  6. SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一)

    SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭 ...

  7. MySQL 大表优化方案探讨

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  8. 使用hbase的api创建表时出现的异常

    /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...

  9. Web API核查表:设计、测试、发布API时需思考的43件事[转]

    Web API核查表:设计.测试.发布API时需思考的43件事   当设计.测试或发布一个新的Web API时,你是在一个原有的复杂系统上构建新的系统.那么至少,你也要建立在HTTP上,而HTTP则是 ...

  10. MySQL大表优化方案

    转:https://segmentfault.com/a/1190000006158186?hmsr=toutiao.io&utm_medium=toutiao.io&utm_sour ...

随机推荐

  1. 5个.NET开源且强大的快速开发框架(帮助你提高生产效率)

    中台Admin(Admin.Core) 中台Admin(Admin.Core)是前后端分离权限管理系统,前端 UI 基于Vue3开发,后端 Api 基于.NET 8.0开发.支持多租户.接口权限.数据 ...

  2. Hive-服务启动和停止命令

    1.启动命令 #!/bin/bash nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 ...

  3. Linux-rsync命令用法详解

    从字面意思上,rsync 可以理解为 remote sync(远程同步),但它不仅可以远程同步数据(类似于 scp 命令),还可以本地同步数据(类似于 cp 命令).不同于 cp 或 scp 的一点是 ...

  4. 探索C语言中的联合体与枚举:数据多面手的完美组合!

    ​ 欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 联合体的定义 联合体又叫共用体,它是一种特殊的数据类型,允许您在相同的内存位置存 ...

  5. NC24727 [USACO 2010 Feb G]Slowing down

    题目链接 题目 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows conveniently numbered ...

  6. NC16129 小小粉刷匠

    题目链接 题目 题目描述 "lalala,我是一个快乐的粉刷匠",小名一边快活地唱着歌,一边开心地刷着墙",兴致突然被打断,"小名,你今天如果刷不完这一栋楼的墙 ...

  7. Python Print 显示颜色

    1.顺序:显示方式,前景颜色,背景颜色 2.顺序非固定,但尽量按默认书写方式 3.也可以在input中输出使用 4.格式: print('\033[显示方式:前景颜色:背景颜色m .......... ...

  8. BasicSample项目说明

    整个示例项目,两个Fragment,ProductListFragment和ProductFragment,一个MainActivity.在MainActivity里面展示的是ProductListF ...

  9. Docker 容器逃逸漏洞 (CVE-2020-15257)

    漏洞详情 Docker发布一个容器逃逸漏洞,攻击者利用该漏洞可以实现容器逃逸,提升特权并破坏主机. containerd使用的抽象套接字仅使用UID做验证,即任意UID为0的进程均可访问此API. 当 ...

  10. 【Android】使用MediaExtractor获取关键帧的时间戳

    1 前言 使用MediaExtractor.MediaMuxer去掉视频文件中的音频数据 中介绍了 MediaExtractor 类的主要方法,本文主要将使用其 advance() 和 seekTo( ...