关于api的表优化及代码优化小结
提示:近期有空整理下mysql设计注意点吧
一、表设计方面
- 建表要求三范式
- 5个必须字段is_del,create_time(CURRENT_TIMESTAMP),create_user,update_time(CURRENT_TIMESTAMP),update_user
- 查询规避掉*
- 对于枚举或者删除类型使用tinyint
- string类型使用索引就得not null,频繁的要考虑,固定类型也不一定需要加,text大字段不加
- 如果字段超过10k的存储了建议分表
- 数据量大的时候考虑水平或者垂直拆表了
- 不存储明文密码、手机号、身份证等
二、代码设计方面
- 规避使用连表查询
- 查询list尽量使用map方式,批量查询
- 不使用带计算的sql
- 能使用缓存替代的尽量替代
总结
工作中其实养成好的编码和设计习惯能规避掉大部分慢查询和慢api,这些做好了进阶就是项目设计了,这才是接下来需要加油的。
关于api的表优化及代码优化小结的更多相关文章
- SQL优化 MySQL版 - 单表优化及细节详讲
单表优化及细节详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:本文章需要MySQL数据库优化基础或观看前几篇文章,传送门: B树索引详讲(初识SQL优化,认识索引):htt ...
- 表优化 altering table OPTIMIZE TABLE `sta_addr_copy`
表优化 altering table OPTIMIZE TABLE `sta_addr_copy` [总结] 1.实际测试的结果是,在state sqlaltering table OPTIMIZE ...
- topo排序 + 用邻接表优化后的
输入数据: 4 61 21 32 33 42 44 2 4 61 21 32 33 42 41 2 topo排序为偏序: #include<stdio.h> #include<que ...
- 详解MySQL大表优化方案( 转)
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- Windows 和 Linux 的IPC API对应表
原文出处:http://blog.csdn.net/zhengdy/article/details/5485472 ...
- SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一)
SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭 ...
- MySQL 大表优化方案探讨
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- 使用hbase的api创建表时出现的异常
/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...
- Web API核查表:设计、测试、发布API时需思考的43件事[转]
Web API核查表:设计.测试.发布API时需思考的43件事 当设计.测试或发布一个新的Web API时,你是在一个原有的复杂系统上构建新的系统.那么至少,你也要建立在HTTP上,而HTTP则是 ...
- MySQL大表优化方案
转:https://segmentfault.com/a/1190000006158186?hmsr=toutiao.io&utm_medium=toutiao.io&utm_sour ...
随机推荐
- 【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】
今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C++过程中,都是只学习一些STL的使用方式,并不了解底层的实现.博主本人认为,这样的学习这样的技 ...
- 痞子衡嵌入式:我入选了2023年度与非网(eefocus)最佳创作者Top15
最近收到了「与非网」发来的 2023 年度最佳创作者 证书,证书做得一如既往地有质感,这是与非网第二次给痞子衡发证书了,足见与非网对痞子衡的认可. 与非网自 2021 年起,每年都会评选一次年度创作者 ...
- 零基础入门Vue之梦开始的地方——插值语法
一.Vue 我!作为初学者,既然要将Vue,那我一定要介绍一下他是什么?我们可以应用一下官方的话 vue的介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与 ...
- 在Java中,对 byte 和 short 类型 进行位操作的时候,严重留意事项
总结:在java中,对byte和short类型的 右移操作 必须先进行 & 0xff 后再右移,避免byte或short是负数的情况下,导致 右移操作前 自动升为int,前面补了很多1,此时右 ...
- 使用 Etcd 快照文件恢复 Etcd 数据:应对单节点及高可用集群情况
1.概述 在 Kubernetes 集群中,所有操作的资源数据都存储在 Etcd 数据库上.为了确保在节点故障.集群迁移或其他异常情况下能够尽快恢复集群数据,我们需要定期对 Etcd 数据进行容灾备份 ...
- NC23619 小A的柱状图
题目 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的柱状图,它的每个矩形下端的宽度可以是不相同的一些整数,分别为 \(a[i]\) ,每个矩形的高度 ...
- NC15832 Most Powerful
题目链接 题目 题目描述 Recently, researchers on Mars have discovered N powerful atoms. All of them are differe ...
- MASM32 - PlaySound的实现
MASM安装教程: https://blog.csdn.net/u010486308/article/details/105495848 代码参考: .model flat, stdcall opti ...
- python开发接口时,使用jsonschema模块对数据进行校验
import jsonschema schema = { "type": "object", # 先声明每个键都是对象 "properties&quo ...
- ProtoBuffer-nanopb介绍
目录 一.需求 二.环境 三.相关概念 3.1 protocol buffer介绍 3.2 nanopb(支持C语言) 3.3 proto文件 四.proto基本语法 4.1 proto文件的定义 4 ...