数据库
文章平均质量分 79
offhours365
个人网站:http://www.offhours365.com/
展开
-
mysql的事务内常用锁
众所周知,在mysql数据库内要想一次更改多条数据,且保证此期间不被其他语句打断,大家都会选择事务和锁。但是事务内的锁到底是锁住了全表还是锁住某行呢,与什么有关呢?什么情况容易造成死锁呢?纸上得来终觉浅,绝知此事要躬行 。在看完极客时间的mysql实战课程和搜索了大量博客后,我做了如下测试以验证这些结论。1、单一索引/unique列/主键 查询到已有行:mysql:5.7.32; innodb引擎表模型:CREATE TABLE `transaction_test` (...原创 2021-07-29 15:01:42 · 278 阅读 · 0 评论 -
mongo 设置分片键
1、mongo分片集群相关知识点mongo集群介绍:https://www.cnblogs.com/clsn/p/8214345.html分片键的选择:https://www.cnblogs.com/lijiaman/p/14289713.html再结合官网确认一下相关版本的规定:https://docs.mongodb.com/manual/sharding/2、设置分片键在MongoDB4.2以及4.2之前,文档的分片字段只有一个,且是不可以修改的。从4.2版本开始,除非分片键.原创 2021-04-23 19:07:28 · 2614 阅读 · 0 评论 -
mysql NULL值影响
1.NULL值比较只可以使用IS NULL或者IS NOT NULL来进行NULL值比较使用算术比较操作符= > < <>等是无法测试的。在mysql中,如果列类型是bool时,NULL表示false使用DISTINCT,GROUP BY或时ORDER BY时两个NULL值被视为相等。ORDER BY:ASC时NULL放在最前面,DESC时NULL放在最后。聚集函数比如 COUNT(), MIN()和SUM()都会忽略NULL值,只有CO...原创 2021-03-16 10:38:28 · 333 阅读 · 0 评论 -
数据库time类型存储
1.mongomongoISODate是一种存储时间的object,它支持到毫秒精度,如果要存储到纳秒精度,则最好用long存储时间戳的方式。golang time.Time是带有时区的时间,在存到Mongo时驱动会转化为ISODate类型,ISODate类型在数据库存储为UTC时间,ISODate.toLocaleString()可以显示当前带有当前时区的字符串。go mongo驱动读取时没有转化为当前时区,还是UTC时区存到time.Time,即time.Time.loc=nil /...原创 2021-03-01 19:31:29 · 4061 阅读 · 1 评论 -
sql数据库的char,varchar,text,blob类型比较
1.charchar(n):n表示字符数,最大长度是255个字符。如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)。1.1mysql数据库mysql官网参考手册提到这句话“一个长度CHAR列被固定在创建表声明的长度。长度可以是0到255之间的任何值。CHAR 存储值时,它们会用空格右填充到指定的长度。当CHAR被检索到的值,拖尾的空格被删除。”这句话怎么理解呢,用以下实验验证: 当定义n=5时,传入字符串"abc",那么实际存储...原创 2021-02-25 10:27:13 · 1890 阅读 · 0 评论 -
数据库upsert实现
1、mysql使用方法: 假设name是主键,则name不存在就插入VALUES后面的值,否则将对应的addr修改为testINSERT INTO user (name, age, addr)VALUES('test',20, 'here')ON DUPLICATE KEY UPDATEaddr = 'test';除了上述用法,在使用中还需要注意一些以下几点:1. user表的部分列如果有默认值,则可以省略,类似insert语法2. 默认优先判断是否需要...原创 2020-12-15 11:50:26 · 647 阅读 · 0 评论 -
数据库auto属性
1.sqlite3 两种方式设置auto:建表时隐式创建它INTEGER PRIMARY KEY 使用AUTOINCREMENT关键字显式创建方式1利用了rowid; 方式2是另一套不同的算法,采用了中间表SQLITE_SEQUENCE table记录增长。详细介绍见官网:https://sqlite.org/autoinc.htmlAUTOINCREMENT: AUTOINCREMENT的主键必须是INTEGER类型,但是INTEGER类型的主键本身默认就是自动...原创 2020-12-02 10:26:32 · 1098 阅读 · 0 评论