![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 63
安藤青司
这个作者很懒,什么都没留下…
展开
-
Spring Boot + MyBatis + MySQL读写分离
1. 引言读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP。然而,应用程序层面去做读写分离最大的弱点(不足之处)在于无法动态增加数据库节点,因为数据源配置都是写在配置中.原创 2021-09-26 18:03:53 · 125 阅读 · 0 评论 -
MySql批量插入时,不插入重复的数据解决方法
1、insert ignore into当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:INSERTIGNOREINTOuser(name)VALUES('telami')这种方法很简便,但是有一种可能,就是插入不是因为重复数据报错,而是因为其他原因报错的,也同样被忽略了~...原创 2021-06-10 12:07:25 · 611 阅读 · 0 评论 -
MySQL常用时间函数以及查询今天、昨天、上周、近30天、去年等的数据的方法
常用时间函数1、date(日期类型数据)返回日期或日期/时间表达式的日期部分2、now()无参数,返回当前的日期和时间3、curdate()无参数,返回当前的日期4、to_days(日期类型数据)给定一个日期date, 返回一个天数 (从年份0000-00-00开始的天数 )5、date_sub(date,interval expr type)从日期减去指定的时间间隔date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。type 参数()常用原创 2020-09-23 10:43:17 · 1946 阅读 · 0 评论 -
为什么不建议数据库使用联合查询以及解决方法
不推荐原因1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据。2.子查询就更别用了,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。3.如果是JOIN的话,它是走嵌套查询的。小表驱动大表,且通过索引字段进行关联。如果表记录比较少的话,还是OK的。大的话业务逻辑中可以原创 2020-05-18 14:25:25 · 2786 阅读 · 0 评论 -
使用Java将百万级别数据插入MySQL
1.分析是不是由主码,外码,索引形成的插入效率下降主码:因为主码是每张表必须有的,不能删除。而mysql会对主码自动创建一个索引,这个索引默认是Btree索引,所以每次插入数据要额外的对Btree进行一次插入。这个额外的插入时间复杂度约为log(n)。这个索引没法删除,所以没法优化。可是每次插入的时候,因为主码约束须要检查主码是否出现,这又须要log(n),可否减小这个开销呢?答案是确定的。咱...原创 2020-04-24 13:08:48 · 1946 阅读 · 2 评论 -
MySQL重新设置自增的id的方法
不清除表里的数据重新设置自增设置主键id自增的数据库表删除数据后,自增id不会自动重新计算想要重新设置自增的id可以用如下命令alter table table_name AUTO_INCREMENT=10;table_name是表名,10表示自增开始的位置清空数据库表中数据 重置自增长truncate table time(time是我数据库表名)...原创 2020-03-18 20:06:10 · 2306 阅读 · 2 评论