数据结构与算法

mysql的MVCC机制

面试问题:如果两个客户端同时执行一个查询sql,为什么查出的数据可能不一样? 解答:是因为mysql底层维护了一个undo日志版本链和read-view一致性试图机制,在repeatable-read隔离级别下,一个事务开启之后,当执行查询语句的时候,就生成了一个read-view,之后查询就会根据一定的规则去undo日志版本链中比对数据;在read-commited隔离级别下,一个事务开启之后,

MySQL笔记

MySQL 基础篇 一、SQL 1、SQL 通用语法 (1)SQL语句可以单行或多行书写,以分号结尾。 (2)SQL语句可以使用空格/缩进来增强语句的可读性。 (3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。 (4)注释: 单行注释 : -- 注释内容  或  # 注释内容 (MySQL 特有) 多行注释 : / * 注释内容 */ 2、SQL分类 分类说明 DDL数据定义

MySQL查询优化(七):MySQL 的 count (*)真的很低效?

优化COUNT函数的查询在 MySQL 中最容易被误解的话题中能够排进前10名,我们可以在网上搜索了解更多关于 COUNT 优化的误解信息。在进行优化前,理解 COUNT 到底做了什么很重要。 COUNT 函数做什么用? COUNT 是一个专用的函数,通常有两种不同的方式:计算值和数据行。值指的是非空(Non-NULL)表达式(NULL表示值缺失)。如果我们在 COUNT的参数中指定了列名或其

Django 数据库连接丢失

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

事务版本控制

问题由来 近段时间我们项目需要实现一个事务版本控制的列式数据库,下面来讲一讲我们的设计: 开启事务时候进行一个事务说明 例如 1.开启事务 POST { "explainValue(操作解释)": "I want update some Info")(必要) } 2.关闭事务 POST 记录

mysql查询成本比较

1.工具 1.mysql:8.0.25 2.msyqlworkbench 2.成本定义 执行sql查询所需要花费的代价 3.查看成本的方式 执行一条示例语句,如下: select sql_no_cache suser.id,suser.name ,srole.name from sys_user suser inner join sys_user_role surole on suser.i

MongoDB丢数据问题的分析

坊间有很多传说MongoDB会丢数据。特别是最近有一个InfoQ翻译的Sven的一篇水文(为什么叫做水文?因为里面并没有他自己的原创,只是搜罗了一些网上的博客,炒了些冷饭吃),其中又提到了丢数据的事情。大家知道作为一个数据库来说,数据的持久性基本上是数据库的最低要求了。如果MongoDB真的有那么糟糕的数据安全问题,它早就在技术选择众多的今天被无情地淘汰掉了。那么真相到底如何呢? 实事求是地来说,

Select进阶查询·子查询

一、子查询定义: select查询命令里包含select查询命令,包涵的select 命令 放在() 里 包含的select查询命令可以在↓ where 命令之后、having命令之后 、from命令之后、select命令之后 二、命令格式: Where命令之后: SELECT 表头名列表 FROM 库.表 WHERE 表头名 判断符号 (SELECT查询命令); Having命令之后