首页
学习
活动
专区
圈层
工具
发布

【重学MySQL】四、关系型数据库设计规则

【重学MySQL】四、关系型数据库设计规则 表、记录、字段设计规则 关系型数据库设计中,表、记录、字段的设计是至关重要的,它们直接决定了数据库的结构、性能和可维护性....表设计规则 表名规范:表名应具有描述性,能够反映表中存储的数据内容。同时,表名应遵循一定的命名规范,如使用小写字母、下划线分隔单词等,以确保在不同数据库系统中的一致性和可读性。...记录设计规则 记录的唯一性:表中的每一条记录都应是唯一的,这通常通过主键来保证。在插入新记录时,应确保不会与现有记录重复。...综上所述,关系型数据库设计中表、记录、字段的设计规则是多方面的,包括命名规范、数据类型选择、约束设置、索引优化等。遵循这些规则有助于设计出结构清晰、性能优越、易于维护的数据库系统。...在设计数据库时,应根据实际需求选择合适的关联关系类型,并合理设置主键和外键以确保数据的准确性和一致性。

1.3K10

互联网MySQL数据库应用潜规则

互联网MySQL数据库应用潜规则 高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性.../值比较都更加复杂,对MySQL来说更难优化 b)null 这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多 c...(29)禁止使用OR条件,必须改为IN查询 解读:旧版本Mysql的OR查询是不能命中索引的,即使能命中索引,为何要让数据库耗费更多的CPU帮助实施查询优化呢?...自搭的Mysql可以完成在线转换,而不需要重启数据库实例。 军规:数据表、数据字段必须加入中文注释 这一点应该没有疑问。...这类场景的架构方向是“解放数据库CPU,把复杂逻辑计算放到服务层”,服务层具备更好的扩展性,容易实现“增机器就扩充性能”,数据库擅长存储与索引,勿让数据库背负过重的任务。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL创建数据库指定编码和排序规则,mysql数据库密码重置

    MySQL 数据库基本使用 mysql 数据库创建与密码重置 ① 数据库登录与密码设置 ② 数据库创建并指定编码和排序规则 ③ 切换数据库 ④ 删除数据库 ⑤ 创建用户 ⑥ 给用户授权 mysql 数据库创建与密码重置...① 数据库登录与密码设置 root 用户登录:mysql -u root -p root 用户重置密码: alter user 'root'@'localhost' identified by 'xxx...'; 退出:exit; ② 数据库创建并指定编码和排序规则 创建数据库 sonic 并指定排序编码和排序规则: create database sonic default character...set utf8 collate utf8_general_ci; ③ 切换数据库 切换数据库 sonic:use sonic ④ 删除数据库 删除数据库 sonic:drop database

    8.1K20

    MySQL 排序规则

    排序规则是一组用于比较字符集中的字符的规则。 每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符的比较规则,包括是否区分大小写,是否区分重音等。...这是MySQL内部使用的标识符。 Default:是否为默认排序规则。如果是默认排序规则,将显示“Yes”;否则,显示“”No”。 Compiled:是否已编译排序规则。...如果没有指定排序规则,MySQL 会基于字符集设置一个默认的排序规则。...collation_database 和 character_set_database 对应,表示当前默认数据库的排序规则。...4.查看排序规则 查看数据库的排序规则 您可以查询 information_schema 数据库的 SCHEMATA 视图来查看数据库的排序规则。

    3K20

    MySQL索引使用规则总结

    本文先介绍下MySQL索引的基本数据结构,再对索引的基本规则做下总结。...如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。...MySQL的查询优化逻辑甚至不会选择对于这样的索引,而改成遍历搜索。 3.数据列尽量的短小。例如能用整型的就不要用字符串类型。...创建了N个列的符合索引,实际上创建了MySQL能够使用的n个索引。例如某表的复合索引 index(国家,省份,城市)。...参考: 1、MySQL技术内幕:InnoDB存储引擎 2、MySQL技术内幕:第4版 3、MySQL高效编程 4、MySQL的官方手册 5、http://km.oa.com/articles/show/

    4.5K00

    一文精通MySQL事务规则

    引言:每个程序员学习数据库离不开MySQL,而学习MySQL就必学事务,今天我们就来一起学习一下MySQL的事务; 事务的概念 在实际的业务开发中,有些业务操作要多次访问数据库。...手动提交事务 在MySQL数据库中有两种提交事务的规则,一种是手动提交事务,一种是自动提交事务,其中自动提交事务是默认的,下面先看一下手动提交事务的案例,MySQL中有专门用于事务的SQL,如下 SQL...自动提交事务 MySQL的每一条DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务,执行完毕自动提交事务,MySQL默认开始自动提交事务。 ? 将张三和李四金额重置为1000 ?...我们可以使用SQL语句查看MySQL是否开启自动提交事务 show variables like '%commit%'; -- 或 SELECT @@autocommit; 通过修改MySQL全局变量...MySQL数据库有四种隔离级别:上面的级别最低,下面的级别最高。“是”表示会出现这种问题,“否”表示不会出现这种问题。

    1.1K20

    数据库PostrageSQL-排序规则支持

    在这种情况下,排序操作和其他需要知道排序规则的操作会失败。 当数据库系统必须要执行一次排序或者字符分类时,它使用输入表达式的排序规则。...在任何特定的数据库中,只有使用数据库编码的排序规则是令人感兴趣的。其他pg_collation中的项会被忽略。...因此,一个如de_DE的被剥离的排序规则名在一个给定数据库中可以被认为是唯一的,即使它在全局上并不唯一。我们推荐使用被剥离的排序规则名,因为在你决定要更改到另一个数据库编码时需要做的事情更少。...当数据库编码是其中之一时, 忽略pg_collation中的ICU排序规则项。...由于预定义的libc排序规则已经包含了数据库实例初始化时在操作系统中定义的所有排序规则, 因此通常不需要手动创建新排序规则。

    2.1K20

    MySQL 的字符集与排序规则

    今天突然被同事问到,MySql 里的 uft8 与 utf8mb4 究竟有什么区别,当时我也是一脸问号,因此特地去了解了一下。...utf8 MySQL 在创立时使用的字符集就是 utf8。首先它能存储下大部分的中文汉字,对于我们正常使用肯定是绰绰有余的。...也就是说,任何不在基本多文本平面的 Unicode 字符,都无法使用 MySQL 的 utf8 字符集存储。...对于 CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 MySQL 官方建议,可以使用 VARCHAR 替代 CHAR。...概念 MySQl的排序规则(collation),一般指对字符集中字符串之间的比较、排序制定的规则, MySLQ排序规则特征: o 两个不同的字符集不能有相同的校对规则; o 每个字符集有一个默认校对规则

    3.2K20

    深入分析MySQL行锁加锁规则

    深入分析MySQL行锁加锁规则 1 查询条件为主键索引 1.1 等值查询记录存在时,在索引的什么位置加什么锁?为什么? 1.2 等值查询记录不存在时,在索引的什么位置加什么锁?为什么?...+写】问题,但是如果在多个事务并发【写+写】的情况下,就必须要用到锁了,一般情况下,数据库的锁都是在有数据库操作的过程中自动添加的。...在实际场景中,行级锁加锁规则比较复杂,不同的查询条件,不同的索引,不同的隔离级别,加锁的情况可能不同,甚至不同版本的MySQL加锁规则也可能会稍有差异。...前面提到过《MySQL实战45讲》中作者给行锁加锁规则总结的那“一个bug”——唯一索引上的范围查询会访问到不满足条件的第一个值为止,所以可以理解为这种情况也是属于那个“bug”吧,在唯一索引idx_mobile...转载请注明出处——胡玉洋 《深入分析MySQL行锁加锁规则》

    2.8K40

    MySQL 字符集、校对规则及索引

    校对规则则是指某种字符集下的排序规则。 在 MySQL 中,每一种字符集都会对应一系列的校对规则。...MySQL 采用的是类似继承的方式来指定字符集的默认值,每个数据库以及每张数据表都有自己的默认值,他们逐层继承。...比如:某个库中所有表的默认字符集,将是该数据库所指定的字符集(这些表在没有指定字符集的情况下,才会采用默认字符集) PS:整理自《Java 工程师修炼之道》 MySQL 索引使用的数据结构主要有 BTree...MySQL 的 BTree 索引使用的是 B 树中的 B+Tree,但在两种主要的存储引擎里,它们的实现方式是不同的。 MyISAM: B+Tree 叶节点的 data 域,存放的是数据记录的地址。

    1.2K30

    Mysql高级4-索引的使用规则

    只有or连接的字段中有非索引字段时才会无效 七、数据分布影响   如果mysql评估使用索引比全表更慢,则不使用索引 mysql> explain select * from account_transaction...执行时使用了primary索引   说明2:第二条select执行时没有使用索引   说明3:因为 account_transaction 整张表就200万条数据,而现在让我搜索id=100000000的数据,数据库会认为还没有直接全表检索块...  说明2:在使用 trade_no 查询数据时,可能使用到的索引有 trade_index , tm 两个索引,最终SQL选择了 trade_index 索引 案例2: use index :建议数据库使用哪一个索引...----+----------+-------+ 1 row in set, 1 warning (0.00 sec)   说明1:很高兴SQL接收了我的建议 案例3:ignore index:告诉数据库不要使用哪一个索引...+---------+-------+------+----------+-------+ 1 row in set, 1 warning (0.00 sec) 案例4:force index:告诉数据库必须要走哪一个索引

    90440
    领券