
数据库
TofuCai
代码是思想的具体体现
展开
-
mysql报错:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;
最近配合测试人员测试批量数据处理时,突然出现这个报错:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;第一反应是数据问题,因为鉴于业务的复杂,测试环境很难有大批量的数据满足测试,所以大部分数据由本人写脚本刷出来的。简单思考可能是数据类型和持久层的映射问题,查看了表字段类型和pojo并无异常。本...原创 2020-03-28 18:57:18 · 315 阅读 · 0 评论 -
数据库拆分:横向拆分和纵向拆分
一、基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(s...转载 2019-02-27 10:04:28 · 1671 阅读 · 0 评论 -
MySQL 乐观锁与悲观锁
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...转载 2019-02-27 11:07:11 · 192 阅读 · 0 评论 -
MySql常用的内置函数
mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。1 数学函数abs(x)pi()mod(x,y)sqrt(x)ceil(x)或者ceiling(x)rand(),rand(N):返回0-1间的浮点数,使用不同的seed N可以获得不同的随机数round(x, D):四舍五入保留D位小数,D默认为0, 可以为负数, 如round(19,...转载 2019-03-28 19:51:46 · 175 阅读 · 0 评论 -
MySQL中EXISTS的用法
比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的...转载 2019-07-04 14:25:18 · 1030 阅读 · 0 评论