xxkfz xxkfz
4年前
使用Stream流递归实现遍历树形结构
可能平常会遇到一些需求,比如构建菜单,构建树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看,代码实现为了实现简单,就模拟查看数据库所有数据到List里面。比如现在有一张菜单表,具体数据如下:下面我们就来模拟这一操作,递归组装树形结构:@Autowi
Wesley13 Wesley13
4年前
java处理高并发高负载类网站的优化方法
一:高并发高负载类网站关注点之数据库没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是MS(主从)方式进行同步复制,将查询和操作和分别在不同的
Johnny21 Johnny21
4年前
msyql备份
MySQL备份的几种方式最近一直想写点博客,但是不知道写什么,感觉自己最近的知识没有什么增加,今天想到了一篇可以写的博客。以前试过根据data文件夹备份MySQL,但是从来没有成功过,前几天帮助朋友还原MySQL,终于成功的将备份的data文件夹还原成功了。MySQL数据库算是常用的数据库中最好使用的数据库了,对于备份的操作也不例外。所以今天分享一下
Stella981 Stella981
4年前
IP数据库的定位能力在商业端的具体应用有哪些?(二)
IP数据库包含全球43亿全量IPv4与2^128全量IPv6,数据库版本分为高精准公安版、高精准商业版、区县级、城市级和IPv6共5个版本。IP数据库主要解决的痛点为互联网广告精准投放、内容精准推荐、用户位置画像、重点企业办公网络资产普查,网络攻击溯源&取证、嫌疑人地理位置定位、服务器优化分配等。互联网在线广告反作弊通过分析
Stella981 Stella981
4年前
MemCache与redis
以下内容为个人理解所得,如要转载,请标明出处:像项目中首页的大广告和商品类目这些不需要经常修改的数据,如果用户每次刷新页面的时候都要去数据库中查询,这样会浪费资源和增加数据库的压力。所以我们想当把这些数据添加到一个缓存中,用户去访问的时候,先去缓存中查找,如果命中失败,再去数据库中查询,然后把查询到的数据添加到缓存中。目前比较
Wesley13 Wesley13
4年前
MySQL 分库分表方案
数据库分库分表前言今天有朋友问到了数据库分库分表,他们都说数据库达到了瓶颈,需要重构,但是毫无头绪,现在做个概念总结(期待后期的实操吗?)会从以下几个方面说起:第一部分:实际网站发展过程中面临的问题。第二部分:有哪几种切分方式,垂直和水平的区别和适用面。第三部分:目前市面有的一些开源产品,技术,它们的优缺点是
Stella981 Stella981
4年前
MongoDB的安全写入GetLastError
这次聊聊业务中经常出现的重试现象,可能很多运维都被开发莫名其妙的艾特然后让查一查业务中出现失败的情况,很不巧刚接手MongoDB的运维就碰到了一个案例。前段时间与业务开发讨论过某业务服务的超时重试问题,这项业务依赖的数据库是一直很热门的MongoDB数据库,这里采用了复制集的模式架构,且底层硬件采用KVM。业务开发反映数据库实例慢,最近超时的业务较少
Stella981 Stella981
4年前
Mycat 分布式事务的实现
Mycat分布式事务的实现博客分类:java数据库引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品。面对企业应用的海量数据事务处理,是目前最好的开源解决方案。但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入“协调者”来统一调度所有节点的执行。 本文选自《分布式数据库架构及企业实践——基于Mycat中间件》
Wesley13 Wesley13
4年前
Oracle学习笔记(一)——并发与锁
1并发多用户数据库管理系统的一个主要任务是对并发(concurrency)进行控制,即对多个用户同时访问同一数据进行控制。当缺乏有效的并发控制时,修改数据的操作就不能保证正常,从而危害数据完整性。管理数据并发的方法是让每个用户轮流操作数据。而数据库管理系统的目标就是减少每个用户的等待时间,即让用户无需等待或使等待难以察觉。为保证数据库性能
Wesley13 Wesley13
4年前
mysql存储过程和自定义函数
存储过程简介SQL语句需要先编辑后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储过程在数据库中,用户通过制定存储过程的名字并传给参数来调用它。存储过程是可编程的函数,在数据库中创建并保持,可以由SQL和控制结构组成。档想要在不同的应用平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的,数据库中的存储过程可以看错