<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[paopaohappen的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/paopaohappen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; paopaohappen]]></copyright><item><title><![CDATA[Day11 druid回收连接流程]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124894186</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124894186</guid><author>paopaohappen</author><pubDate>Sat, 21 May 2022 09:08:02 +0800</pubDate><description><![CDATA[时间真的过得很快，马上就最后一天了。

一直划水，实在太惭愧了，总结了下，发现跟最初的预期有点远，但是还是读进去几回，还是很有意思的。

最后看了下回收连接的流程



连接回收的目的是将可用的连接放回池中，以达到连接循环利用的目的，这样可以节省性能。从以上回收的过程来看，在回收时会先进行一系列连接的校验，比如连接的可用性校验、连接超时校验等待，如果不符合校验条件，就直接将连接close掉了：见方法discardConnection(holder)，此时也就不能将连接放回池中。



DruidData..]]></description><category></category></item><item><title><![CDATA[Druid10 监控]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124873459</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124873459</guid><author>paopaohappen</author><pubDate>Thu, 19 May 2022 22:44:31 +0800</pubDate><description><![CDATA[今天来看下druid独特的功能，监控吧。

进入druid监控页面。可以看到我们基本的SQL监控，URL监控等等。



接下来，我们请求我们的一些接口。看看是否能记录下来。用postman请求几个接口。我们切换到SQL监控。我们可以看到，无论是SQL语句还是执行时间，最大并发等等信息都能一一展示出来。这样就能快速定位慢SQL。



接下来我们切换到URL监控。具体信息如下，我们看到请求的第四个接口执行很慢，并且和JDBC交互次数为19次，这肯定是有for循环查询DB了。所以这些信息能快速的帮我们定位到.]]></description><category></category></item><item><title><![CDATA[Day09 druid 数据库密码加密]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124853901</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124853901</guid><author>paopaohappen</author><pubDate>Wed, 18 May 2022 23:51:49 +0800</pubDate><description><![CDATA[数据库密码加密

在生产环境中，直接在配置文件中暴露明文密码是一件非常危险的事情，出于两点考虑：对外，即使应用服务被入侵，数据库还是安全的；对内，生产环境的数据库密码理论上应该只有 dba 知道，但是代码都是在代码仓库中放着的，如果密码没有加密，每次发布前 dba 都需要手动修改配置文件后再进行打包编译。



首先，我们需要生成数据库密码的密文，需要在命令行中执行如下命令：



java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.Con..]]></description><category></category></item><item><title><![CDATA[Day8 druid sql 解析器]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124828363</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124828363</guid><author>paopaohappen</author><pubDate>Tue, 17 May 2022 19:50:16 +0800</pubDate><description><![CDATA[druid sql 解析器
今天来研究下druid的sql解析器。
解析器组成部分
在 Druid 的 SQL 解析器中，有三个重要的组成部分，它们分别是：
Parse
词法分析（Lexer）
当拿到一条形如 select id, name from user 的 SQL 语句后，首先需要解析出每个独立的单词，select，id，name，from，user。这一部分，称为词法分析，也叫作 Lexer。
语法分析
语法分析的职责就是明确一个语句的语义，表达的是什么意思,它不仅需要知道每个单词，而且要知道这些]]></description><category></category></item><item><title><![CDATA[Day7 testOnBorrow&testOnReturn &testWhileIdlepp]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124808885</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124808885</guid><author>paopaohappen</author><pubDate>Mon, 16 May 2022 21:53:28 +0800</pubDate><description><![CDATA[今天虽然没听到老师的直播，但是看到老师整理的思路，决定去研究下这三个参数。

这三个参数跟健康检查机制有关



Druid检测连接是否有效的参数 ：




	testOnBorrow：每次获取连接时执行validationQuery检测连接是否有效（会影响性能）
	
	
	testOnReturn：每次归还连接时执行validationQuery检测连接是否有效（会影响性能）
	
	
	testWhileIdle：申请连接的时候检测，如果空闲时间大于timeBetweenEvictionRun...]]></description><category></category></item><item><title><![CDATA[Day 5 Theard的State]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124769998</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124769998</guid><author>paopaohappen</author><pubDate>Sat, 14 May 2022 16:39:20 +0800</pubDate><description><![CDATA[Thread.State
源码
 /**
     * A thread state.  A thread can be in one of the following states:
     * &lt;ul&gt;
     * &lt;li&gt;{@link #NEW}&lt;br&gt;
     *     A thread that has not yet started is in this state.
     *     &lt;/li&gt;
     * &lt;li&gt;{@]]></description><category></category></item><item><title><![CDATA[Day4 多线程下对druid的测试]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124769531</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124769531</guid><author>paopaohappen</author><pubDate>Sat, 14 May 2022 16:23:31 +0800</pubDate><description><![CDATA[多线程下对druid的测试
今天继续Case2, 和之前的Case0相比呢，是继续比较多个线程池的性能对比。这次不同的是，用100个线程并发去执行25000个数据库的连接并释放。我们今天不研究他们不同线程池的性能对比，研究下这个测试用例用到的多线程，并发相关的东西，看懂这段代码。

可以看到下面的代码是druid连接池的测试方法，核心方式是p0
   public void test_0() throws Exception {
        DruidDataSource dataSource = ne]]></description><category></category></item><item><title><![CDATA[Day03 DruidDataSource连接池的初始化]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124737499</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124737499</guid><author>paopaohappen</author><pubDate>Thu, 12 May 2022 19:01:10 +0800</pubDate><description><![CDATA[前两天发现严重跑偏，发现大家都在梳理druid的pool的关键类，druiddatasource,init流程啊，getconnection里是如何执行的呢。

感觉模模糊糊懂个大概，今天我也来研究下

DruidDataSource连接池的初始化


//线程池初始化，在starter方法或者其他初始化方式
publicvoidinit()throwsSQLException{
 //已经在初始化就不在进行初始化了。
 if(inited) {
   return;
 }

...]]></description><category></category></item><item><title><![CDATA[Day2 多连接池的性能对比]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124714519</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124714519</guid><author>paopaohappen</author><pubDate>Wed, 11 May 2022 18:28:05 +0800</pubDate><description><![CDATA[多连接池的性能对比
由于我对这个benckmark，基础测试实在太好奇了，所以决定从测试用例的这部分开始看起。
今天看了Case0

里面的内容是对比几个连接池，性能对比。
其中test_druid是测试druid连接池的，同时还测试了dbcp，boneCP，c3p0，tomcat-jdbc一共五种连接池进行对比，测试执行申请归还连接1,000,000（一百万）次总耗时，一共执行5次。
public void test_druid() throws Exception {
       //1.new一个D]]></description><category></category></item><item><title><![CDATA[Day1 TPCH及TPCDS]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/124698022</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/124698022</guid><author>paopaohappen</author><pubDate>Tue, 10 May 2022 22:45:25 +0800</pubDate><description><![CDATA[TPCH及TPCDSOLTP&amp;OLAPTPC-HTPCDS自己的理解
今天是第一天的源码活动，想着先从测试用例看起，无意发现了resources目录中有两个文件夹tpcds和tpch，这里面有很多sql语句。我猜测是测试性能的。


搜索了下，原来TPC是一个组织推出了多个TPC-X的衡量数据库性能的标准。
TPC-H和TPC-DS是针对OLAP数据库进行测试的。
OLTP&amp;OLAP
OLTP的全称是On-line Transaction Processing，中文名称是联机事务处理。其特点]]></description><category></category></item><item><title><![CDATA[JS整理(一)]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/5104911</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/5104911</guid><author>paopaohappen</author><pubDate>Wed, 30 Dec 2009 11:19:00 +0800</pubDate><description><![CDATA[因为这两篇太安逸了,东西很多,很实用,所以转到我格子里!总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!!如果你找的javascript的东西的话,建议你 ctrl+F  直接在这个页上找,因为这里80%有你要找的,但是要让你挨着看的话,你就准备看完就去配眼镜!! 事件源对象 event.srcElement.tagName event.srcEle]]></description><category></category></item><item><title><![CDATA[关于execel导入数据库的几种方法]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/4230991</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/4230991</guid><author>paopaohappen</author><pubDate>Mon, 01 Jun 2009 09:56:00 +0800</pubDate><description><![CDATA[Execel导入数据库1、用sql语句研究了老半天搜了好多方法，最后终于导进去了，不容易啊！赶紧记下来，省得以后又忘了！ Select * into aa from openrowset(Microsoft.Jet.OLEDB.4.0, Excel 8.0;Database=c:/aa.xls, SELECT * FROM [aa$])//这句是把C盘aa.xl]]></description><category></category></item><item><title><![CDATA[如何删除表中重复的行？ ]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/4230987</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/4230987</guid><author>paopaohappen</author><pubDate>Mon, 01 Jun 2009 09:55:00 +0800</pubDate><description><![CDATA[如何删除表中重复的行？ 思路：记录虽然存在重复，但是rowid是唯一的，所以在子查询取得重复行中最小的rowid，删除重复行中 大于最小的rowid的行，只是保留了最小rowid的行，就是删除了重复行。create table bb --创建测试表( bbid int identity(1,1), --自增列 bbname varchar(20), --名称 bbage varchar(2]]></description><category></category></item><item><title><![CDATA[C#与JAVASCRIPT函数的相互调用]]></title><link>https://blog.youkuaiyun.com/paopaohappen/article/details/4222007</link><guid>https://blog.youkuaiyun.com/paopaohappen/article/details/4222007</guid><author>paopaohappen</author><pubDate>Thu, 28 May 2009 10:07:00 +0800</pubDate><description><![CDATA[我们通过问答的方式来为大家解答C#与JAVASCRIPT函数的相互调用：1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数?问题1答案如下：javaScript函数中执行C#代码中的函数：方法一：1、首先建立一个按钮，在后台将调用或]]></description><category></category></item></channel></rss>