第2章.数据库关系模型 2.1关系及其相关概念 2.2关系模型原理 2.3 PostgreSQL数据库关系操作实践 2.1关系及其相关概念 1.关系、实体 实体(entity)——是指包含有数据特征的事物对象在概念模型世界中 的抽象名称。 例 在企业信息系统中,人员信息可以使用“雇员(EMPLOYEE)”实体名称表
Fluent API - 关系 简介 使用 Fluent API 配置关系时,请从 EntityTypeConfiguration 实例开始,然后使用 HasRequired、HasOptional 或 HasMany 方法指定此实体参与的关系类型。 HasRequired 和 HasOptional 方法采用表示引用导航属性的 Lambda 表达式。 HasMany 方法采用表示集合导
当使用普通索引的时候,它会先在索引那查询所有符合条件的索引,然后再回到表中根据索引查询对应的数据出来。所以这里有两次查询表的过程,简称回表。 怎么避免回表 1、使用主键作为条件查询 2、如果必须使用辅助索引,那么尽量避免使用*,直接列出所需列名。实际上就算使用主键作为条件查
先设置使用的数据库为MySQL5(Database -> Change Current DBMS -> MySQL 5.0 ),再双击主键,然后选中Identity。
MySQL的查询需要遍历几次B+树,理论上需要几次磁盘I/O? 2021-07-20阅读 5440 一、前言 这个问题是博主去年面试的时候被大佬问过的问题,当时也不大清楚里面的原理,硬着头皮回答的,当然,最终面试也没过,哈哈。最近刚好研究了这块的一些东西,就有种恍然大悟的感觉,这里分享给大家,欢
indexedDb模块 快捷操作indexedDb 使用: // 初始化 let idb=indexDb.new(prop?) 参数: (可选) prop={ // 数据库名称 "databaseName": "defaultDB", // 表格名称 "tableName": "defaultTbl", // 主键名称 "keyPath":
哪些情况需要创建索引? 主键自动建立唯一索引 频繁作为查询条件的字段应该创建索引 查询中与其它表关联的字段,外键关系建立索引 单键/组合索引的选择问题,组合索引性价比更高 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度 查询中统计或者分组字段 哪些情况不用创
概述 主要关注 MyISAM 和 InnoDB 对比项 MyISAM InnoDB 外键 不支持 支持外键 事务 不支持 支持事务 行表锁 表级锁,即使操作一条记录也会锁住整张表,不适合高并发操作 行级锁,数据更新时只锁某一行,不对其他行有影响,适合高并发操作注意:数据插入时使用表锁 缓存 只缓存索
Mysql 索引总结 1. 聚簇索引 InnoDB 引擎使用的就是聚簇索引,就是主键的索引,是一种数据的存储方式。所有的数据都是存储在索引的叶子结点上(与MySAM 引擎不同,MySAM是传统方式),这样本质也是一种加速查找的方式,搜索索引就可以拿到想要的行所有的数据;不过对于不是顺序的插入(比如随机ID插
使用mysql自带的函数计算距离作为筛选条件 这种方式是网上比较常见的,缺点很明显,不能使用索引,查询非常的慢,几万条数据量查询都慢的要死 /** * @param :lat 纬度 * @param :lon 经度 * @param :dis 距离范围 **/ SELECT a.*,ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((:lat * PI
前几天遇到一个需要实现oracle批量插入的需求,于是我自己疯狂的百度,搞了一个oracle批量插入的小工具。 批量插入语句格式 insert into tableName(column1(主键),column2,column3...) select value1 column1,value2 column2,value3 column3 from dual union all select value1
1.左右连接区别? left join(左连接)查询的包括左表的所有记录和右表中交集的记录,如果右表中的没有对应数据,按null补充。 right join(右连接) 查询的包括右表的所有记录和左表中交集的记录。如果左表中的没有对应数据,按null补充。 2.having和where的区别? (1)having
mybatisplus-plus README.MD 1. 多主键@MppMultiId下新增后返回主键 qrcode_id设置为主键,但是没设置数据库自增 @MppMultiId @InsertFill("select IFNULL(max(qrcode_id), 1) from t_rdr_qrcode_template") @TableField(value = "qrcode_id",fill= FieldFill.I
目录 常规篇 1、说一下数据库的三大范式?? 2、只查询一条数据,但是也执行非常慢,原因一般有哪些? 3、count(*)、count(0)、count(id)实现方式的区别? 4、误删数据怎么办? 5、drop、truncate 和 delete 的区别 6、MySQL大表查询为什么不会爆内存? 7、深度分页(超大分页)怎么处理? 8、日
注意mapper接口中的每一个函数,里面的参数都要通过@Param来取别名; 注意在mybatis里面,如果是模糊查询,需要用concat来拼接字符串 <select id="selectByPointAndTitleLike" resultType="net.xdclass.online_class.domain.Video"> select * from video where point=#{point} and
第一范式:字段是最小的的单元不可再分 学生信息组成学生信息表,有年龄、性别、学号等信息组成。这些字段都不可再分,所以它是满足第一范式的 第二范式:满足第一范式,表中的字段必须完全依赖于全部主键而非部分主键。 其他字段组成的这行记录和主键表示的是同一个东西,而主键是唯一的,它
gp的分布键主要功能就是为了避免数据倾斜: 1.分布键必须自己主动指定,不能使用默认分布键(建表语句中没写分布键) 2.分布键必须能够使数据均匀的分布到各个节点上 我曾做过数据倾斜的操作 环境:测试环境,建表的分布键为日期,对表没有进行压缩 状态:进行数据抽数(向我自己建的表),测
在深入探究问题之前,我们先了解一下 MySQL 的加锁机制。 一、MySQL 加锁机制 首先要明确的一点是 MySQL 加锁实际上是给索引加锁,而非给数据加锁。我们先看下MySQL 索引的结构。 MySQL 索引分为主键索引(或聚簇索引)和二级索引(或非主键索引、非聚簇索引、辅助索引,包括各种主键索引
1.数据库设计规范: 2.数据库表的日期字段: create_time 类型:timestamp 默认值:CURRENT_TIMESTAMP,不要勾选根据当前时间戳更新 update_time 类型:timestamp 默认值:CURRENT_TIMESTAMP , 勾选根据当前时间戳更新 3.数据库字段的枚举类型: type enum 值('0','1') 4.数据库
用mybatispluc往数据库新增值一直提示 Could not set property 'id' of ' “xxxxxxxxxxxxxxx” 并且报argument type mismatch错误 参数类型不匹配 原因是数据库主键自动自增 和 mybatisplus自动递增方式不同 mybatisplus默认帮我设置为雪花算法生成主键id 是长串类
--第三部分:数据表设计:范式--范式的存在能够让工作人员在不同的数据库上操作时都能具有一定的规律性--能够使我们的数据库开发维护都更标准,从而提高工作效率 --第一范式:针对每一个字段的值都不可再分的表,就符合第一范式--如果字段的值可以再分的更详细,就不符合第一范式 --第二范式-
mysql总结 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 存储引擎: 常见存储引擎: Myisam:5.5之前默认引擎,支持表锁,不支持外键和事务,查询插入性能很高 InnoDB:支持事务,外键,支持行级锁,5.5之后默认存
https://www.cnblogs.com/xiaolincoding/p/15769721.html select count(1) from t_order; count() 是一个聚合函数,函数的参数不仅可以是字段名,也可以是其他任意表达式,该函数作用是统计符合查询条件的记录中,函数指定的参数不为 NULL 的记录有多少个。 这
一、for update定义 for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不
MySQL版本: 这个情况在 8.0.28版本没有出现 报错如图 建表SQL: DROP TABLE IF EXISTS `pt_dict_common`; CREATE TABLE `pt_dict_common` ( `DMBH` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '代码编号', `DMMC` varchar(2