史上最强的MySQL数据库设计规范(互联网大厂都使用的2021年最新版本)

原创超级全面的Java技术知识体系思维导图,欢迎浏览下载

目录

第一章 概述 1

1.1. 目的 1

1.2. 读者对象 1

1.3. 参考文档 1

1.4. 术语定义 1

第二章 数据库设计规范 3

2.1. 整体规范 3

2.1.1. 注释 3

2.1.2. 字符集 3

2.1.3. 存储引擎 3

2.1.4. 不依赖数据库特性 3

2.1.5. 平衡范式与冗余 3

2.2. 数据库对象规范 4

2.2.1. 表设计规范 4

2.2.2. 字段设计规范 7

2.2.3. 索引设计规范 9

2.2.4. 主键设计规范 10

2.2.5. 其他规范 11

2.3. 命名规范 12

2.3.1. 基本规范 12

2.3.2. 库命名规范 12

2.3.3. 表命名规范 13

2.3.4. 字段命名规范 14

2.3.5. 索引命名规范 15

2.3.6. MySQL关键字 16

2.4. SQL规范 19

2.4.1. in/or 19

2.4.2. select * 19

2.4.3. union all 19

2.4.4. 模糊查询 19

2.4.5. 反向查询 19

2.4.6. 隐式类型转换 19

2.4.7. Join 19

2.4.8. SQL解析 19

2.4.9. SQL表达式 20

2.4.10. 多表更新 20

2.4.11. 交互 20

2.4.12. Load data 20

2.4.13. 避免大SQL 20

2.4.14. 避免大批量 20

2.4.15. 避免大事务 20

2.4.16. 索引字段的顺序 20

2.4.17. insert into必须指定插入列 21

2.4.18. DDL操作 21

2.4.19. sysdate() 21

2.4.20. 避免多余的排序 21

2.4.21. 聚合函数 21

2.4.22. 最有效的过滤字段 21

2.5. 数据库域名规范 22

2.6. 行为规范 23

第三章 高并发高可用 24

3.1. 主从部署 24

3.1.1. 主从复制 24

3.1.2. 读写分离 24

3.1.3. 负载均衡 24

3.2. 分库分表 25

3.3. 数据分级 25

3.4. 其他 25

概述

目的

本文档主要目的是对所有数据库对象(包括库、表、字段、索引、主键、外键、约束、表分区、触发器、存储过程等)的使用场景及使用规范,进行相关的约定,供日后应用开发、数据库设计、数据库维护提供规范性依据。

读者对象

参考文档

无。

术语定义

术语 解释
字符集 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:UTF-8字符集,UTF-8-MB4字符集,ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。
存储引擎 用各种不同的技术将数据存储在文件(或者内存)中的机制。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。
数据库特性 跟数据自身相关,但区别于其他类型数据库的功能或者特征。
范式 范式,特指数据库设计范式,是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。
冗余 特指在数据库设计中,本不属于表实体的属性,但因性能或者其他要求,将这些属性也在本表中存储
### LlamaIndex 多模态 RAG 实现 LlamaIndex 支持多种数据类型的接入与处理,这使得它成为构建多模态检索增强生成(RAG)系统的理想选择[^1]。为了实现这一目标,LlamaIndex 结合了不同种类的数据连接器、索引机制以及强大的查询引擎。 #### 数据连接器支持多样化输入源 对于多模态数据的支持始于数据收集阶段。LlamaIndex 的数据连接器可以从多个异构资源中提取信息,包括但不限于APIs、PDF文档、SQL数据库等。这意味着无论是文本还是多媒体文件中的内容都可以被纳入到后续的分析流程之中。 #### 统一化的中间表示形式 一旦获取到了原始资料之后,下一步就是创建统一而高效的内部表达方式——即所谓的“中间表示”。这种转换不仅简化了下游任务的操作难度,同时也提高了整个系统的性能表现。尤其当面对复杂场景下的混合型数据集时,良好的设计尤为关键。 #### 查询引擎助力跨媒体理解能力 借助于内置的强大搜索引擎组件,用户可以通过自然语言提问的形式轻松获得所需答案;而对于更复杂的交互需求,则提供了专门定制版聊天机器人服务作为补充选项之一。更重要的是,在这里实现了真正的语义级关联匹配逻辑,从而让计算机具备了一定程度上的‘认知’功能去理解和回应人类意图背后所蕴含的意义所在。 #### 应用实例展示 考虑到实际应用场景的需求多样性,下面给出一段Python代码示例来说明如何利用LlamaIndex搭建一个多模态RAG系统: ```python from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader, LLMPredictor, PromptHelper, ServiceContext from langchain.llms.base import BaseLLM import os def create_multi_modal_rag_system(): documents = SimpleDirectoryReader(input_dir='./data').load_data() llm_predictor = LLMPredictor(llm=BaseLLM()) # 假设已经定义好了具体的大型预训练模型 service_context = ServiceContext.from_defaults( chunk_size_limit=None, prompt_helper=PromptHelper(max_input_size=-1), llm_predictor=llm_predictor ) index = GPTSimpleVectorIndex(documents, service_context=service_context) query_engine = index.as_query_engine(similarity_top_k=2) response = query_engine.query("请描述一下图片里的人物表情特征") print(response) ``` 此段脚本展示了从加载本地目录下各类格式文件开始直到最终完成一次基于相似度排序后的top-k条目返回全过程。值得注意的是,“query”方法接收字符串参数代表使用者想要询问的内容,而在后台则会自动调用相应的解析模块并结合先前准备好的知识库来进行推理计算得出结论。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sjhzjj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值