数据结构与算法

MySQL悲观锁与乐观锁的实现方案

我们知道Mysql并发事务会引起更新丢失问题,解决办法是锁,所以本文将对锁(乐观锁、悲观锁)进行分析 悲观锁和乐观锁是用来解决并发问题的两种思想,在不同的平台有着各自的实现。例如在Java中,synchronized就可以认为是悲观锁的实现(不严谨,有锁升级的过程,升级到重量级锁才算),Atomic***原子类可以认为是乐观锁的实现。 悲观锁 具有强烈的独占和排他特性,在整个处理过程中将数据处于锁

JPA 百万级数据量动态分页查询的优化

分页查询是业务中再常见不过的操作了,在数据量比较小,索引使用得当的情况下,一般的动态查询都没啥性能问题。然而当数据量比较达到百万,千万级,常规的分页查询一般都会出现性能问题。本文不会介绍什么分库分表,缓存之类的优化方案,这些东西在网上千篇一律,不值得在此处拿来讨论。本文将通过具体的案例来讲讲当数据量到达百万量级后,分页到底该怎么做,代码该怎么写。 前言 分页查询是业务中再常见不过的操作了,在数

postgresql实战—窗口函数

RETURNING返回更新后的数据 INSERT INTO ……RETURNING  */id UPSERT:INSERT…ON CONFLICT UPDATE TABLESAMPLE:数据抽样 SELECT … FROM  table_name  TABLESAMPLE sampling_method sampling_method抽样方法 SYSTEM:随机抽取表上数据块的数据

Django 数据库连接丢失

在 Django 工程中,有时候我们需要在服务器上执行一些脚本。这些脚本需要 Django 的运行环境,还需要做一些 ORM 操作。一般大概流程如下: import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') import django django.setup() from app.t

434.【数据库技术基础】SQL 的基本组成

SQL 由如下几个部分组成: 关系数据库的三级模式结构 数据定义语言。SQL DDL 提供定义关系模式和视图、删除关系和视图、修改关系模式的命令。 交互式数据操纵语言。SQL DML 提供查询、是插入、删除和修改的命令。 事务控制(Transaction Control)。SQL 提供定义事务开始和结束的命令。 嵌入式 SQL 和动态 SQL(Emebeded SQL and Dy

MySQL逻辑架构

1、mysql架构图 8297ddcb0c43911b88ca352c3e278dcc.png ①第一层是服务层(为客户端服务):为请求做连接处理、授权认证、安全等。 ②第二层是核心层:查询解析、分析、优化、缓存,并且提供内建函数:存储过程,触发器,视图。 ③第三层是存储引擎层:不光可以做存储和提取数据,而且针对特殊数据引擎还要做事务处理。 1.1、连接管理与安全性(服务层) 1.

Workfine学习体验:事半功倍的灵魂办公工具——数据管理器

众所周知,Workfine是一款易上手、便捷、高效的数字化管理工具,虽然平时大家都在用,也都比较熟悉,但是还有一些隐藏的实用小技巧可能还没有被发现。上节课我们主要讲了数据管理器的【数据类型】【条件格式】以及【间隔色】的设置,满足了大家对于系统操作的便捷性和界面美观度的要求,今天我们来继续学习数据管理器的其他相关内容。 【唯一】 在之前的学习中,我们发现表单中会录入重复的信息内容,很不

localStorage本地存储

localStorage可以将第一次请求的数据直接存储到本地,这个相当于一个5m大小的针对于前端页面的数据库 基础语法 setItem() 修改本地存储的数据 getItem() 获取对应的本地存储 removeItem() 删除对应的本地存储 由于存储的数据类型限制 只能存储字符串类型数据 对象存进去就是object字符串. 需要存储的话需要序列化为json格式的字符串. 对象转换为json

MySQL索引

索引 索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描 应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段 字符字段只建前缀索引 字符字段最好不要做主键 不用外键,由程序保证约束

无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口

无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接口 的介绍,采用抽象工厂设计模式,已经支持了大象数据库PostgreSQL。之前通过字符串拼接生成DDL SQL语句,比较繁琐。本文开始,引入了FreeMarker模版引擎,通过配置模版实现创建和修改