数据库
Lin大坑haha~
这个作者很懒,什么都没留下…
展开
-
mysql索引失效的情况总结
1.LIKE操作中,’%xx%'不会使用索引,也就是索引会失效,但是‘xxx%’可以使用索引。在索引的列上使用表达式或者函数会使索引失效。2.在一个SELECT语句中,索引只能使用一次,如果在WHERE中使用了,那么在ORDER BY中就不要用了。3.组合索引中不能有列的值为空NULL,否则那么这一列对组合索引就是无效的。4.在查询条件中使用不等于,包括<、>、<>、!= 会导致索引失效。不排除某些引擎帮忙优化的情况,还是走索引5.在查询条件中使用IS NULL或者IS NO原创 2020-06-19 21:34:34 · 374 阅读 · 0 评论 -
mysql ddl是否会锁表的问题
今天和同事讨论mysql在线ddl是否会锁表的问题,查了下资料 Mysql在5.6版本之前,直接修改表结构的过程中会锁表,具体的操作步骤如下: (1)首先创建新的临时表,表结构通过命令ALTAR TABLE新定义的结构 (2)然后把原表中数据导入到临时表 (3)删除原表 (4)最后把临时表重命名为原来的表名 具体ddl如何工作Mysql 5.6 虽然引入了Online DDL,但是并不是修改表结构的时候,一定不会导致锁表,在一些场景下还是会锁表的,比如 ①某个慢SQL或者比较大的结果集的SQL在..原创 2020-05-12 00:59:48 · 2333 阅读 · 0 评论 -
Activiti工作流引擎,关于百万级单表分页查询的一些优化实践
在Activiti工作流引擎项目Saas改造中,会遇到说多租户多用户的情况,那么每个表单数据量也会变多,单表百万级需求就成为一个必须要解决的问题。 别说可以用分库分表的方案,分库分表已经解决了千万级大表数据的情况了,总不能总是依赖数据库中间件分库分表方案,因为该方案分片是需要预先设定好的,如果改动分片策略或者分片数量,需要重新导数据,十分麻烦。那么使单表能够支持多一些数据的查询就尤为重...原创 2020-02-26 00:52:43 · 2241 阅读 · 0 评论 -
缓存设计——笔记
缓存设计时一般会遇到3个问题:缓存实时性和一致性问题实时策略:这种策略实时性好,用户体验佳,默认使用。读取数据,应用程序先从缓存取数据,没有得到,则从DB中取数据,成功后,放到缓存中。如果命中,应用程序从缓存中取数据,取到后返回。那么为什么不直接更新缓存呢?因为多线程更新数据库的情况下,数据库可以保证事务,但是网络延迟或者线程调度更新缓存的时候,可能出现乱序。异步策略:当请求穿透缓存,不...原创 2020-01-31 01:07:55 · 99 阅读 · 0 评论 -
mybatis将时间存入数据库后,只有日期对的,时分秒全是0
将实体类的属性类型设置为java.sql.Date如果你想在实体类中使用java.util.Date, 则要注意:完整的日期时间,要确保jdbcType不填只需要时间,要指定jdbcType=”TIME”只需要日期,要指定jdbcType=”DATE”于是将映射的XML文件里的,jdbcType="DATE"这段代码清了就可以了。...原创 2019-07-22 17:02:06 · 1403 阅读 · 0 评论