网易MySQL微专业学习笔记(四)-实践课数据库对象

前言

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。

所有笔记可能不定期更新,发布时不一定为最终版。

正文

何为表结构设计

表结构设计需要在正式进行开发之前完成。

根据产品需求将负责的业务模型抽象出来

varchar 字段非常长的情况下与text有哪些区别

varchar vs text

性能上

两者都存在行溢出的风险,一般在认识中varchar比text好一点,但若varchar定义非常长,存储的内容很多,其性能基本与text一样。。。

varcahr最大长度

一般为65535字节。

若表为一个字段,且为utf8编码,其最大能定义的长度为65535/3

TEXT

四种不同大小,支持的更多样化。

一般在保存少量字符串的时候采用CHAR或VARCHAR,较大文本采用TEXT或BLOB。

TEXT或BLOB区别

blob的主要优势是可以存储二进制数据,所以可以把图片等存成blob,而text就只能存文本,这个是他们的主要区别,另外text类型可以有字符集和排序规则,这个在blob里是没有的。

数据类型-命名规范

所有表名,字段名全部使用小写字母

不同业务,表名使用不同前缀区分,比如:kaola_good,music_song、news_comment

生产环境表名字段名要有实际意义

单个子段尽量使用字段全名;多个字段名之间用下划线分割

字段设计规范

字段类型选择,尽量选择能满足应用要求的最小数据类型

尽量使用整型代替字符型。整型在字段长度、索引大小等方面开销更小效率更高,入邮编字段、手机号字段等

注释,每个字段必须以comment语句给出字段的作用

经常访问的大字段(如blob/text)等需要单独放到一张表中,避免降低sal效率,图片、电影等答问卷数据禁止存储数据库。

新业务统一建议使用utf8mb4字符集

用户赋权

理解用户需要什么权限

普通用户只有读写权限

系统管理员具有super权限

权限粒度要做到尽可能的细

普通用户不要设置with grant option属性

权限粒度:系统层面>库层面>表层面>字段层面

禁止简单密码

线上密码要求随机(一般9位随机数)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人分享

前一天数据偏移至当日数据

客户画像项目中可能会遇到此类问题,因为客户画像要求的是对单个用户信息的查询。 但倘若以日周期为准,今日梳理的数据宽表中某个字段为null,但此类字段不能以nul...

1291
来自专栏架构之路

Hive简介

转载自http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html Hive简介   首...

3153
来自专栏小白安全

SQL注入与原始的MD5散列(Leet More CTF 2010注入300)

注入300:使用原始MD5散列的SQL注入 昨天的CTF面临的一个挑战是看似不可能的SQL注入,价值300点。挑战的要点是提交一个密码给一个PHP脚本,在...

2574
来自专栏决胜机器学习

设计模式专题(二十) ——职责链模式

设计模式专题(二十)——职责链模式 (原创内容,转载请注明来源,谢谢) 一、概述 职责链模式(Chainof Responsibility),是使多个对象都有...

3479
来自专栏更流畅、简洁的软件开发方式

翻动100万级的数据 —— 只需几十毫秒

感谢大家的支持!!! 昨天发了一个邀请,邀请大家帮忙测试,效果还可以,下面小结一下: 通过内部的计数器得知:访问次数是1071(其中有好多是自己点的:)),...

2745
来自专栏技术小黑屋

Android修复通知栏跳动的问题

曾经遇到过这样的问题,在我的代码中使用了通知栏,一切都正常,但是就是正在进行的通知栏中属于我的程序的那一条总是上下跳来跳去,一闪一闪的。感觉用户体验很不好,于是...

1051
来自专栏web编程技术分享

【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第五节)

45111
来自专栏沃趣科技

MySQL的一个表最多可以有多少个字段

问题由来 引用我们客户的原话: *创建如下表,提示我:* ? *如果我将下面表中的varchar(200),修改成text(或blob):报错变为另一个:* ?...

6909
来自专栏杨建荣的学习笔记

通过pl/sql计算程序的运行时间(r3笔记第77天)

在sqlplus中运行sql语句或者pl/sql的时候如果需要统计运行的时间,只需要开启set timing on选项即可。 SQL> set timing o...

34511
来自专栏信安之路

Mysql注入导图-学习篇

接触SQLi(SQL injection)已有大半年,不得不说,这是个庞大的领域。每次以为自己都弄懂了之后都会有新的东西冒出来,需要再次学习,一路走来效率不高,...

1360

扫码关注云+社区