数据库
文章平均质量分 65
小气鬼Sweet
乘风破浪会有时,,直挂云帆济沧海
展开
-
druid连接池的简单使用
druid连接池- druid连接池介绍 为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能(黄婆卖瓜,自卖自夸哈哈)。它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。它与其他数据库连接池的不同是因为 1.其可以监控数据库访问性能,Druid内置提供了一个功能强大的St原创 2017-10-06 21:11:05 · 2414 阅读 · 0 评论 -
MongoDB的CRUD
mongod是一个文本型数据库,存入数据库的都是一个一个文本。文本用{}括起来,并且文本中的内容都是键值对,和json格式差不多,但是在mongo中,它是一种和json格式很像的bson格式比如{“a”:1}就是一个文本,{“a”:{“b”:1,“c”:2}}是复杂的嵌入性文本1.insert1)db.collection.insertOne()添加一个文本db.collection.in...原创 2019-07-31 16:29:35 · 553 阅读 · 0 评论 -
很高兴!终于踩到了慢查询的坑
之前看了饿了么团队写的一篇博客:等等!这两个 Spring-RabbitMQ 的坑我们已经替你踩了。深受启发,一定要取个能吸引读者眼球的标题,当然除了响当当的标题以外,内容也要是干货。为什么会想取这样一个标题,因为看了理论上的慢查询优化,今天!!!终于在生产上实战了(一)慢sql一问题发现将应用发布到生产环境后,前端页面请求后台API返回数据,发现至少需要6s。查看到慢sql:复现慢...原创 2018-10-21 15:25:52 · 291 阅读 · 0 评论 -
解决困扰自己已久的InnoDB存储引擎行级锁问题
在事务中执行select…for update,update,delete会引起锁,对于事务的修改,事务中会使用X锁,X锁是行级锁,InnDB行锁是通过给索引上的索引项加锁实现的(只有通过索引条件检索数据(即explain sql语句,type=index或range),InnoDB才使用行级锁,否则使用表锁) 为了验证这个,我做了一个小测验 数据表t_bitfly:CREATE TABLE `原创 2017-12-07 23:17:29 · 1706 阅读 · 0 评论 -
优化分页查询
我们一般使用分页都是使用limit来完成的,如果数据量小的话还可以,但是当数据量非常大的时候,不建立索引,通过全表查询,将会非常耗时,性能将受到很大的影响。第一种优化方式 在索引上完成排序分页的操作,最后根据主键关联回原表查询所需要的其他列内容例:我想对我之前的分页进行优化,没有优化前的sql语句<select id="queryNewsByPage" resultType="news">原创 2017-11-19 14:20:13 · 257 阅读 · 0 评论 -
常用SQL优化
这里的优化是针对InnoDB存储引擎的 (一)优化大批量插入,针对load 顺序导入(待补充) (二)优化insert语句 1)如果同时从同一个客户端插入多行,应尽量使用多个值表的insert语句。这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗。例:insert into test values(1,2),(1,3),(1,4)我们一般使用ssm框架,在使用mybatis实现批量插原创 2017-11-18 22:42:36 · 281 阅读 · 0 评论 -
mysql查询性能优化
mysql执行查询的过程如图: 1)客户端首先通过客户端/服务器通信协议与mysql服务器建立起连接 2)客户端发送一条sql语句 判断是否为查询语句,如果是查询语句,则先在查询缓存区哈希查找对应sql的数据,如果未找到,则需要调用解析器解析、预处理、再由优化器生成对应的查询执行计划 3)mysql根据优化器生成的执行计划,调用存储引擎的API执行查询 4)将查询到的结果缓存到查询缓存中,原创 2017-11-24 20:14:03 · 492 阅读 · 0 评论 -
聚簇索引、二级索引、覆盖索引
(一)聚簇索引 覆盖索引不是一种单独的索引类型(索引类型大致分为B-Tree索引、Hash索引、全文索引、空间数据索引、其他索引我们不是特别见到的这几大类),是一种数据存储方式,在索引存储结构结构上保存数据。InnoDB的聚簇索引实际上是在同一个结构中保存了B-Tree索引和数据行。 每一个表都有一个聚簇索引,并且只有一个。(覆盖索引除外,覆盖索引可以模拟多个聚簇索引) 聚簇索引的数据存储方式原创 2017-11-21 22:34:18 · 1872 阅读 · 4 评论 -
MySQL定位慢查询以及索引优化
(一)定位慢查询 1.通过explain,可以查看sql语句的执行情况(比如查询的表,使用的索引以及mysql在表中找到所需行的方式等),一般情况下,基本可以通过explain,主要是通过其查找行的方式和查找行数确定问题,因为全表扫描很浪费时间,占用cpu。2.通过show profiles查找出执行sql语句的query_id,接着执行show profile for query_id 看到执行原创 2017-11-18 19:32:42 · 513 阅读 · 0 评论 -
配置redis缓存失效时间
最近想利用redis缓存做一个简陋版的类似腾讯新闻这样的查看新闻的网页。用了缓存以后,添加新闻缓存没有更新,想使用缓存的失效时间做到数据库缓存一致性。刚开始做的时候认为使用@CachePut注解会起到更新缓存的作用,设置了cacheName和key都和查找方法中的@Cacheable中的key和cacheName的一样,然而并没有成功,反而是被替换了,想想hashMap就能理解这个问题了。如何设置,原创 2017-11-11 18:22:54 · 23189 阅读 · 1 评论 -
druid查看统计的监控信息
直接开门见山如何配置 在web.xml中加入 <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <init-param> <!-- 允许清空统计数据原创 2017-10-06 22:44:13 · 2884 阅读 · 0 评论 -
mongodb集群搭建
这里选择的是简单又实用的Replica Set(副本集架构)搭建方式1.创建三个mongod实例--port指定端口号--dbpath指定数据库保存的位置--replSet指定副本集的名字,三个mongod实例的副本集名字相同mongod --port 27018 --dbpath db1 --replSet tthemongod --port 27019 --dbpath db2 -...原创 2019-07-31 16:33:37 · 168 阅读 · 0 评论