Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webman-blog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
魏洲
webman-blog
Commits
93747b99
Commit
93747b99
authored
May 17, 2022
by
wolfocde
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
2a555ead
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
4 deletions
+9
-4
sqldata.sql
extend/sqldata.sql
+9
-4
No files found.
extend/sqldata.sql
View file @
93747b99
INSERT
INTO
`system_admin`
VALUES
(
1
,
'admin'
,
'$2y$10$UVVdW/J89bU3zIU3PxM9OuVHtl6EuaKoUE90kixku7V0.QZVBxoS.'
,
'XQuUsi'
,
'2022-04-29'
,
1
,
'2022-04-29 16:28:04'
,
'2022-05-13 12:39:46'
);
INSERT
INTO
`options`
VALUES
(
1
,
'logo'
,
'{
\"
file
\"
:
\"\"
,
\"
site_blog_logo
\"
:
\"
\"
,
\"
site_admin_logo
\"
:
\"
/upload/20220510/Gdq1652176288QwLRMI.png
\"
}'
,
1
,
'2022-05-07 22:05:28'
,
'2022-05-10 17:51:29
'
);
INSERT
INTO
`options`
VALUES
(
1
,
'logo'
,
'{
\"
file
\"
:
\"\"
,
\"
site_blog_logo
\"
:
\"
/upload/20220517/DXY1652765152jymIYd.jpg
\"
,
\"
site_admin_logo
\"
:
\"
/upload/20220517/xsI1652765155hQXUOo.jpg
\"
}'
,
1
,
'2022-05-07 22:05:28'
,
'2022-05-17 13:25:56
'
);
INSERT
INTO
`options`
VALUES
(
2
,
'upload'
,
'{
\"
upload_type
\"
:
\"
local
\"
,
\"
upload_allow_ext
\"
:
\"
xbm,tif,pjp,svgz,jpg,jpeg,ico,tiff,gif,svg,jfif,webp,png,bmp,pjpeg,avif
\"
,
\"
upload_allow_size
\"
: 10485760}'
,
1
,
'2022-05-07 22:05:44'
,
'2022-05-09 09:14:17'
);
INSERT
INTO
`options`
VALUES
(
3
,
'about'
,
'{
\"
content
\"
:
\"
<div
><img src=
\\\"
/upload/20220510/fnu1652176303IzdjNR.jpg
\\\"
width=
\\\"
300
\\\"
></div>
\\
n<div><br>
\\
n</div>
\\
n<div><a href=
\\\"
https://kaifa.baidu.com/
\\\"
target=
\\\"
_blank
\\\"
>发阿斯蒂芬</a><br>
\\
n</div>
\\
n<div>大事发生地方</div>
\"
,
\"
about_me
\"
:
\"
<div><img src=
\\\"
/upload/20220510/fnu1652176303IzdjNR.jpg
\\\"
width=
\\\"
300
\\\"
></div>
\\
n<div><br>
\\
n</div>
\\
n<div><a href=
\\\"
https://kaifa.baidu.com/
\\\"
target=
\\\"
_blank
\\\"
>发阿斯蒂芬</a><br>
\\
n</div>
\\
n<div>大事发生地方</div>
\"
,
\"
about_me_desc
\"
:
\"
阿的所发生的发色的发是
\"
}'
,
1
,
'2022-05-07 23:24:40'
,
'2022-05-11 18:22:09
'
);
INSERT
INTO
`options`
VALUES
(
4
,
'site'
,
'{
\"
file
\"
:
\"\"
,
\"
site_ico
\"
:
\"
/upload/2022051
0/YsG1652176316pROgHq.ico
\"
,
\"
site_icp
\"
:
\"
闽ICP-XXXXXX
\"
,
\"
site_name
\"
:
\"
我的博客
\"
,
\"
site_tongji
\"
:
\"\"
,
\"
site_version
\"
:
\"
1.0.0
\"
,
\"
site_keywords
\"
:
\"
博客,blog
\"
,
\"
site_description
\"
:
\"
这是一个简单的Blog程序,欢迎你来到这里。
\"
}'
,
1
,
'2022-05-07 23:27:46'
,
'2022-05-11 18:33:12
'
);
INSERT
INTO
`options`
VALUES
(
3
,
'about'
,
'{
\"
content
\"
:
\"
<div
style=
\\\"
text-align: center;
\\\"
><img src=
\\\"
/upload/20220517/Rwc1652765273OYnWKP.jpg
\\\"
></div>
\\
n<h2 style=
\\\"
text-align: center;
\\\"
><b>我命由我不由天,除了工作日!</b></h2>
\"
,
\"
about_me
\"
:
\"
<div style=
\\\"
text-align: center;
\\\"
>
\\
n<h2><b>我命由我不由天,除了工作日!</b></h2>
\\
n</div>
\\
n<div style=
\\\"
text-align: center;
\\\"
><img src=
\\\"
/upload/20220517/Rwc1652765273OYnWKP.jpg
\\\"
></div>
\"
,
\"
about_me_desc
\"
:
\"
这里是我的个人博客!
\"
}'
,
1
,
'2022-05-07 23:24:40'
,
'2022-05-17 13:29:10
'
);
INSERT
INTO
`options`
VALUES
(
4
,
'site'
,
'{
\"
file
\"
:
\"\"
,
\"
site_ico
\"
:
\"
/upload/2022051
7/URS1652765216GTOQWN.ico
\"
,
\"
site_icp
\"
:
\"
闽ICP-XXXXXX
\"
,
\"
site_name
\"
:
\"
我的博客
\"
,
\"
site_tongji
\"
:
\"\"
,
\"
site_version
\"
:
\"
1.0.0
\"
,
\"
site_keywords
\"
:
\"
博客,blog
\"
,
\"
site_description
\"
:
\"
这是一个简单的Blog程序,欢迎你来到这里。
\"
}'
,
1
,
'2022-05-07 23:27:46'
,
'2022-05-17 13:45:35
'
);
INSERT
INTO
`category`
VALUES
(
1
,
'生活'
,
1
,
'2022-04-16 20:54:11'
,
NULL
,
0
);
INSERT
INTO
`category`
VALUES
(
2
,
'技术'
,
1
,
'2022-04-16 20:54:11'
,
NULL
,
0
);
INSERT
INTO
`category`
VALUES
(
3
,
'折腾'
,
1
,
'2022-04-16 20:54:11'
,
NULL
,
0
);
INSERT
INTO
`article`
VALUES
(
2
,
'白马王子'
,
'啊发生的发生的分
\n
阿萨德发撒旦发射点发射点发射得分
\n
阿萨德发生地方'
,
1
,
'/upload/20220506
\\
1651852534FglIUK.jpg'
,
'啊发生的发生的分
\n
<div>阿萨德发撒旦发射点发射点发射得分</div>
\n
<div>阿萨德发生地方</div>'
,
'2022-05-08'
,
0
,
1
,
0
,
'2022-05-08 15:55:46'
,
NULL
);
INSERT
INTO
`article`
VALUES
(
1
,
'蒹葭'
,
'蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。
\n
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。
\n
蒹葭采采,白露未已。所谓伊人,在'
,
1
,
'/upload/20220517/dip1652765664FSjzHW.jpg'
,
'蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。<br>
\n
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。<br>
\n
蒹葭采采,白露未已。所谓伊人,在水之涘。溯洄从之,道阻且右。溯游从之,宛在水中沚。<br>'
,
'2022-05-08'
,
11
,
1
,
0
,
'2022-05-08 15:55:46'
,
'2022-05-17 13:34:29'
);
INSERT
INTO
`article`
VALUES
(
2
,
'值得收藏的一份MySQL规范'
,
'本文档是为帮助研发与运维人员按照规范使用MySQL数据库,提升研发写SQL的水平。致力于提供一个安全,稳定,高性能的数据库环境。
\n
命名规范
\n\n
1) 库名、表名、字段名必须使用小写字母,
\"
_
\"
分割。'
,
2
,
''
,
'<div class=
\"
post
\"
style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;
\"
>
\n
<div class=
\"
single viewall
\"
id=
\"
article_content
\"
style=
\"
margin: 0px; padding: 5px 0px; border-width: 1px 0px 0px; border-top-style: dotted; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-top-color: rgb(24, 24, 27); border-right-color: initial; border-bottom-color: initial; border-left-color: initial; border-image: initial; vertical-align: baseline; line-height: 30px; overflow-wrap: break-word; word-break: break-all; overflow: hidden; position: relative;
\"
>
\n
<p style=
\"
margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>本文档是为帮助研发与运维人员按照规范使用MySQL数据库,提升研发写SQL的水平。致力于提供一个安全,稳定,高性能的数据库环境。</span></p>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>命名规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 库名、表名、字段名必须使用小写字母,
\"
_
\"
分割。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 库名、表名、字段名不超过12个字符。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 库名、表名、字段名禁止使用MySQL保留字,见附件。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 库名、表名、字段名见名知意,建议使用名词而不是动词。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 临时库、表名必须以tmp为前缀,并以日期为后缀。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 备份库、表必须以bak为前缀,并以日期为后缀。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>基础规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 所有表统一使用InnoDB存储引擎。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 表字符集选择UTF8mb4。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 所有表和列都需要添加注释。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 禁止在数据库中存储图片、文件。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 禁止在线上做数据库压力测试,如有特殊需要,需提前报备。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 禁止客户端直接操作测试,生产数据库。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 研发保证应用与数据库表结构版本的统一,并提供相应的数据库回滚策略。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 表结构变更DBA审核未通过的,不允许上线。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>字段设计规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 每张表必须有整型主键。如:id bigint(20) UNSIGNED , NOT NULL,不要自增。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 禁止DEFAULT NULL,建议NOT NULL 设置默认值。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE,或者使用bigint(需要做转换)。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 建议使用UNSIGNED存储非负数值。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 不建议使用ENUM类型,使用TINYINT来代替。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 建议使用INT UNSIGNED存储IPV4。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 禁止在数据库中存储明文密码。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 整形定义中建议采用INT(10),而不是INT(1),INT(11)或其他。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) 存储状态,性别等,用TINYINT。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 将过大字段拆分到其他表中。尽可能不使用TEXT、BLOB类型。如果必须使用,业务表中的TEXT,BLOB中字段,必须要拆分到单独的表中存储。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
11) 需要根据实际的宽度来选择VARCHAR(N)类型的宽度。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
12) N表示的是字符数不是字节数. VARCHAR(N),N尽可能小,进行排序和创建临时表一类的内存操作时,会使用N的长度申请内存。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
13) 存储年使用YEAR类型,存储日期使用DATE类型。 <br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
14) 13 存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。TIMESTAMP类型保存的值不能比1970早或比2037晚。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>一句话总结:</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p dir=
\"
ltr
\"
style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>能NOT NULL 就NOT NULL,char、varchar用NOT NULL DEFAULT
\'\'
,tinyint、smallint、int用NOT NULL DEFAULT 0。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
char、varchar取值要吝啬,根据实际需求给,比如人名一般不超过5个,varchar(5),不要varchar(200)。int、tinyint这类,int(1)和int(13)都是一样的,<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
我们统一用int(10),tinyint取值范围[-128,127],加了unsigned取值[0,255],如果不需要存储负数,整型类型的加unsigned。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>索引规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 单张表的索引数量控制在5个以内。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 复合索引中的字段数建议不超过5个。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 非唯一索引必须按照
\"
idx_字段名称_字段名称[_字段名]
\"
进行命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 唯一索引必须按照
\"
uniq_字段名称_字段名称[_字段名]
\"
进行命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 合理利用覆盖索引。不使用更新频繁的列做为索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 对长字符串考虑使用前缀索引,前缀索引长度不超过8个字符。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 索引字段的顺序需要考虑字段值去重之后的个数,个数多的放在前面。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 使用EXPLAIN判断SQL语句是否合理使用索引,尽量避免extra列出现:Using File Sort,UsingTemporary。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) UPDATE、DELETE语句需要根据WHERE条件添加索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 合理创建联合索引(避免冗余),(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c),但(a,c)只能用到部分索引。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>索引禁忌</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 不在选择性低的列上建立索引,例如
\"
性别
\"
,
\"
状态
\"
,
\"
类型
\"
。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 不在索引列进行数学运算和函数运算。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 尽量不使用外键。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 高并发场景不建议使用唯一索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 不使用前导查询,如like
\"
%ab
\"
,like
\"
%ab%
\"
。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6 SQL语句规范<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
1) SQL语句中IN包含的值不应过多(不超过1000个)<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) UPDATE、DELETE语句不使用LIMIT。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) WHERE条件中必须使用合适的类型,避免MySQL进行隐式类型转化。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) SELECT语句只获取需要的字段。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) SELECT、INSERT语句必须显式的指明字段名称,不使用SELECT *,不使用INSERT INTO table()。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) WHERE条件中的非等值条件(IN、BETWEEN、<、<=、>、>=)会导致后面的条件使用不了索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 避免在SQL语句进行数学运算或者函数运算,容易将业务逻辑和DB耦合在一起。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) INSERT语句使用batch提交(INSERT INTO table VALUES(),(),()……),values的个数不应过多。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) 避免使用存储过程、触发器、函数等,容易将业务逻辑和DB耦合在一起,并且MySQL的存储过程、触发器、函数中存在一定的bug。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 避免使用JOIN。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
11) 使用合理的SQL语句减少与数据库的交互次数。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
12) 不使用ORDER BY RAND(),使用其他方法替换。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
13) 建议使用合理的分页方式以提高分页的效率。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
14) 统计表中记录数时使用COUNT(*),而不是COUNT(primary_key)和COUNT(1)。</span></p>
\n
</blockquote></div>
\n
</div>'
,
'2022-05-17'
,
6
,
1
,
0
,
'2022-05-17 13:37:28'
,
'2022-05-17 13:37:56'
);
INSERT
INTO
`article`
VALUES
(
3
,
'我承认我找不到素材了'
,
'那就这样吧!
\n\n\n\n
'
,
3
,
''
,
'那就这样吧!
\n
<div><br>
\n
</div>
\n
<div align=
\"
center
\"
><img src=
\"
/upload/20220517/Hkb1652765942zWOqaJ.jpg
\"
><br>
\n
</div>'
,
'2022-05-17'
,
11
,
1
,
0
,
'2022-05-17 13:39:04'
,
'2022-05-17 13:41:21'
);
INSERT
INTO
`article`
VALUES
(
1
,
'蒹葭'
,
'蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。
\n
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。
\n
蒹葭采采,白露未已。所谓伊人,在'
,
1
,
'/upload/20220517/dip1652765664FSjzHW.jpg'
,
'蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。<br>
\n
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。<br>
\n
蒹葭采采,白露未已。所谓伊人,在水之涘。溯洄从之,道阻且右。溯游从之,宛在水中沚。<br>'
,
'2022-05-08'
,
11
,
1
,
0
,
'2022-05-08 15:55:46'
,
'2022-05-17 13:34:29'
);
INSERT
INTO
`article`
VALUES
(
2
,
'值得收藏的一份MySQL规范'
,
'本文档是为帮助研发与运维人员按照规范使用MySQL数据库,提升研发写SQL的水平。致力于提供一个安全,稳定,高性能的数据库环境。
\n
命名规范
\n\n
1) 库名、表名、字段名必须使用小写字母,
\"
_
\"
分割。'
,
2
,
''
,
'<div class=
\"
post
\"
style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;
\"
>
\n
<div class=
\"
single viewall
\"
id=
\"
article_content
\"
style=
\"
margin: 0px; padding: 5px 0px; border-width: 1px 0px 0px; border-top-style: dotted; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-top-color: rgb(24, 24, 27); border-right-color: initial; border-bottom-color: initial; border-left-color: initial; border-image: initial; vertical-align: baseline; line-height: 30px; overflow-wrap: break-word; word-break: break-all; overflow: hidden; position: relative;
\"
>
\n
<p style=
\"
margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>本文档是为帮助研发与运维人员按照规范使用MySQL数据库,提升研发写SQL的水平。致力于提供一个安全,稳定,高性能的数据库环境。</span></p>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>命名规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 库名、表名、字段名必须使用小写字母,
\"
_
\"
分割。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 库名、表名、字段名不超过12个字符。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 库名、表名、字段名禁止使用MySQL保留字,见附件。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 库名、表名、字段名见名知意,建议使用名词而不是动词。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 临时库、表名必须以tmp为前缀,并以日期为后缀。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 备份库、表必须以bak为前缀,并以日期为后缀。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>基础规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 所有表统一使用InnoDB存储引擎。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 表字符集选择UTF8mb4。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 所有表和列都需要添加注释。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 禁止在数据库中存储图片、文件。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 禁止在线上做数据库压力测试,如有特殊需要,需提前报备。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 禁止客户端直接操作测试,生产数据库。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 研发保证应用与数据库表结构版本的统一,并提供相应的数据库回滚策略。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 表结构变更DBA审核未通过的,不允许上线。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>字段设计规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 每张表必须有整型主键。如:id bigint(20) UNSIGNED , NOT NULL,不要自增。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 禁止DEFAULT NULL,建议NOT NULL 设置默认值。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE,或者使用bigint(需要做转换)。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 建议使用UNSIGNED存储非负数值。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 不建议使用ENUM类型,使用TINYINT来代替。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 建议使用INT UNSIGNED存储IPV4。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 禁止在数据库中存储明文密码。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 整形定义中建议采用INT(10),而不是INT(1),INT(11)或其他。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) 存储状态,性别等,用TINYINT。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 将过大字段拆分到其他表中。尽可能不使用TEXT、BLOB类型。如果必须使用,业务表中的TEXT,BLOB中字段,必须要拆分到单独的表中存储。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
11) 需要根据实际的宽度来选择VARCHAR(N)类型的宽度。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
12) N表示的是字符数不是字节数. VARCHAR(N),N尽可能小,进行排序和创建临时表一类的内存操作时,会使用N的长度申请内存。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
13) 存储年使用YEAR类型,存储日期使用DATE类型。 <br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
14) 13 存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。TIMESTAMP类型保存的值不能比1970早或比2037晚。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>一句话总结:</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p dir=
\"
ltr
\"
style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>能NOT NULL 就NOT NULL,char、varchar用NOT NULL DEFAULT
\'\'
,tinyint、smallint、int用NOT NULL DEFAULT 0。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
char、varchar取值要吝啬,根据实际需求给,比如人名一般不超过5个,varchar(5),不要varchar(200)。int、tinyint这类,int(1)和int(13)都是一样的,<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
我们统一用int(10),tinyint取值范围[-128,127],加了unsigned取值[0,255],如果不需要存储负数,整型类型的加unsigned。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>索引规范</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 单张表的索引数量控制在5个以内。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 复合索引中的字段数建议不超过5个。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 非唯一索引必须按照
\"
idx_字段名称_字段名称[_字段名]
\"
进行命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 唯一索引必须按照
\"
uniq_字段名称_字段名称[_字段名]
\"
进行命名。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 合理利用覆盖索引。不使用更新频繁的列做为索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) 对长字符串考虑使用前缀索引,前缀索引长度不超过8个字符。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 索引字段的顺序需要考虑字段值去重之后的个数,个数多的放在前面。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) 使用EXPLAIN判断SQL语句是否合理使用索引,尽量避免extra列出现:Using File Sort,UsingTemporary。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) UPDATE、DELETE语句需要根据WHERE条件添加索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 合理创建联合索引(避免冗余),(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c),但(a,c)只能用到部分索引。</span></p>
\n
</blockquote>
\n
<h2 style=
\"
margin-top: 0px; padding: 0px 0px 15px; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-color: rgb(24, 24, 27); border-image: initial; vertical-align: baseline; line-height: 1.5; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>索引禁忌</span></h2>
\n
<blockquote style=
\"
background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px 0px 20px; padding: 10px 20px 10px 50px; border: 0px; vertical-align: baseline; line-height: 1.8; border-radius: 3px; position: relative;
\"
>
\n
<p style=
\"
padding: 0px; border: 0px; vertical-align: baseline; position: relative;
\"
><span style=
\"
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;
\"
>1) 不在选择性低的列上建立索引,例如
\"
性别
\"
,
\"
状态
\"
,
\"
类型
\"
。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) 不在索引列进行数学运算和函数运算。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) 尽量不使用外键。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) 高并发场景不建议使用唯一索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) 不使用前导查询,如like
\"
%ab
\"
,like
\"
%ab%
\"
。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6 SQL语句规范<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
1) SQL语句中IN包含的值不应过多(不超过1000个)<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
2) UPDATE、DELETE语句不使用LIMIT。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
3) WHERE条件中必须使用合适的类型,避免MySQL进行隐式类型转化。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
4) SELECT语句只获取需要的字段。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
5) SELECT、INSERT语句必须显式的指明字段名称,不使用SELECT *,不使用INSERT INTO table()。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
6) WHERE条件中的非等值条件(IN、BETWEEN、<、<=、>、>=)会导致后面的条件使用不了索引。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
7) 避免在SQL语句进行数学运算或者函数运算,容易将业务逻辑和DB耦合在一起。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
8) INSERT语句使用batch提交(INSERT INTO table VALUES(),(),()……),values的个数不应过多。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
9) 避免使用存储过程、触发器、函数等,容易将业务逻辑和DB耦合在一起,并且MySQL的存储过程、触发器、函数中存在一定的bug。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
10) 避免使用JOIN。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
11) 使用合理的SQL语句减少与数据库的交互次数。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
12) 不使用ORDER BY RAND(),使用其他方法替换。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
13) 建议使用合理的分页方式以提高分页的效率。<br style=
\"
margin: 0px; padding: 0px;
\"
>
\n
14) 统计表中记录数时使用COUNT(*),而不是COUNT(primary_key)和COUNT(1)。</span></p>
\n
</blockquote></div>
\n
</div>'
,
'2022-05-17'
,
6
,
1
,
0
,
'2022-05-17 13:37:28'
,
'2022-05-17 13:37:56'
);
INSERT
INTO
`article`
VALUES
(
3
,
'我承认我找不到素材了'
,
'那就这样吧!
\n\n\n\n
'
,
3
,
''
,
'那就这样吧!
\n
<div><br>
\n
</div>
\n
<div align=
\"
center
\"
><img src=
\"
/upload/20220517/Hkb1652765942zWOqaJ.jpg
\"
><br>
\n
</div>'
,
'2022-05-17'
,
11
,
1
,
0
,
'2022-05-17 13:39:04'
,
'2022-05-17 13:41:21'
);
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment