数据库
文章平均质量分 50
平凡之路漫漫
这个作者很懒,什么都没留下…
展开
-
pymysql allowmultiqueries=true 一次性执行多条不同语句
在 mysql 驱动的众多属性中,有一个属性叫做allowmultiqueries=false #默认false这个属性的含义是是否允许一次执行多个查询。使用了该参数之后,mysql 可以一次执行多条不同的语句。 语句之间用分号分割。如下所示: from directsql.connector import MysqlPool,MysqlConnection from pymysql.constants import CLIENT client...原创 2021-08-24 09:55:04 · 2591 阅读 · 0 评论 -
事务与MVCC以及各种锁
事务与MVCC以及各种锁什么是事务?设一条sql语句是一个操作,则事务可以理解为一组不可分割的操作集合。事务具有四个特征,简称 ACID特性事务的特性原子性 (Atomicity) 事务是一个整体,其中的操作要么全部操作成功,否则就视为操作失败。隔离性(Isolation): 多个事务并发执行的时候,各个事务之间不能互相干扰, 即事务质检是互相之间隔离的。持久性(Durability) : 持久性是指事务一旦成功提交,其对数据的所做改动是永久性的。一致原创 2020-10-09 17:47:41 · 295 阅读 · 0 评论 -
redis 中的跳表与有序集合--redis 有序集合的实现
看了很多跳表的文章包括《redis设计与实现》,都没能很好地了解跳表。感谢https://www.jianshu.com/p/61f8cad04177 此文。有序集合的实现有序集合 的实现采用了两种方式:当有序集合对象同时满足以下两个条件时,对象使用 ziplist 编码:1、保存的元素数量小于128;2、保存的所有元素长度都小于64字节。否则使用跳表(skiplist)1. 压缩列表 ziplist首先需要明确,压缩列表的产生是Redis为了节约...转载 2020-06-02 23:17:39 · 359 阅读 · 0 评论 -
浅析 mysql数据库中的范式
第一范式(1NF)数据表的每一列都要保持它的原子特性,也就是列不能再被分割。这张表就不符合第一范式规定的原子性,不符合关系型数据库的基本要求,在关系型数据库中创建这个表的操作就不能成功。不得不将数据表设计为如下形式。第二范式(2NF)概率:每列属性必须与主键相关。第三范式(3NF)概念:所有的非主属性不依赖于其他的非主属性范式优点: 1.通常 范式结构的表更新快,开销小。 2.更少重复 3.更少使用到disti...原创 2020-06-01 23:50:48 · 135 阅读 · 0 评论 -
【高性能mysql】-字段类型的选择
1. 优化数据类型 1.0 几个简单的原则 1.更小的通常更好:尽量选择可以正确存储数据的最小数据类型。如int-->tinyint, varchar-->char(20) 2.简单就好:使用更少耗费cpu的类型。如整形比字符串操作代价更低;使用mysql内建的时间/日期类型而不是字符串存储时间;使用整数存储ip地址等等 3. 尽量避免 null 。如果查询带有null的列,对mysql来说更难优化。nu...原创 2020-05-18 22:49:09 · 416 阅读 · 0 评论 -
redis 字典与渐进式哈希
大家都知道 ,redis是一个基于key-value 形式的 存储系统。而字典就是一个元素类型为key-value形式的一种数据结构,那么可以这么认为:redis本身就是一个巨大的字典。在redis的源码,中redis自己实现了字典。首先是实现 key-value 键值对typeof struct dictEntry{ void *key; union{ void *val; uint64_tu64; int64_ts64; }...原创 2020-05-14 21:57:39 · 283 阅读 · 0 评论