druid配置详解
2016-02-02 15:50
656 查看
数据库主流的优化技术:
读取优化:加索引,但是不要太多。太多会降低效率的,而且类型不能为null;
插入,大量读取:批量操作,批量插入比普通插入性能差了几十倍。
实在太大:分表,读写分离。
还有一个就是连接池:
创建一个连接池,保持一定数量的连接数。这样,数据库连接如果存在空闲的连接,可以直接使用,减少了创建数据库连接的时间。
中国目前主流的连接池技术就druid,其他什么proxool的,现在都很少人用了,毕竟技术在进步。而且还提供了良好的监控。
使用:下载阿里巴巴的jar包。
配置datasource:
<!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost/test"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
<!-- 配置连接数 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="20" />
<!-- 配置单个连接最长等待时间 -->
<property name="maxWait" value="60000" />
<!-- 间隔10分钟检查所有连接是否需要关闭或创建 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置最小生存的时间:5分钟 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 配置监控统计拦截的filters,监控界面sql统计 -->
<property name="filters" value="stat" />
</bean>
这样,连接池就已经创建好。现在的技术使用真的不是很难,最重要的是要有那个意识去学,去用。
监控配置:运用过滤器原理。
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置访问路径。
<servlet>
<servlet-name>DruidView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
基本使用就是这样了。
读取优化:加索引,但是不要太多。太多会降低效率的,而且类型不能为null;
插入,大量读取:批量操作,批量插入比普通插入性能差了几十倍。
实在太大:分表,读写分离。
还有一个就是连接池:
创建一个连接池,保持一定数量的连接数。这样,数据库连接如果存在空闲的连接,可以直接使用,减少了创建数据库连接的时间。
中国目前主流的连接池技术就druid,其他什么proxool的,现在都很少人用了,毕竟技术在进步。而且还提供了良好的监控。
使用:下载阿里巴巴的jar包。
配置datasource:
<!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost/test"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
<!-- 配置连接数 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="20" />
<!-- 配置单个连接最长等待时间 -->
<property name="maxWait" value="60000" />
<!-- 间隔10分钟检查所有连接是否需要关闭或创建 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置最小生存的时间:5分钟 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 配置监控统计拦截的filters,监控界面sql统计 -->
<property name="filters" value="stat" />
</bean>
这样,连接池就已经创建好。现在的技术使用真的不是很难,最重要的是要有那个意识去学,去用。
监控配置:运用过滤器原理。
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置访问路径。
<servlet>
<servlet-name>DruidView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
基本使用就是这样了。
相关文章推荐
- JFinal常见问题汇总
- jweb——修改自jfinaluib的java管理系统开发基础框架
- druid 使用ConfigFilter
- Druid数据库连接池使用示例
- 使用druid配置jndi
- JFinal 1.8 又发布JAVA 极速 WEB+ORM 框架的特点
- springmvc+mybatis+spring 整合 bootstrap html5 mysql oracle SSM框架源码 SSH maven
- SpringMVC+hibernate框架整合源码SSH Dubbo,ZooKeeper
- SpringMVC mybatis or hibernate ehcache二级缓存maven非和maven版本
- druid ehcache
- Druid原理介绍(1)
- Druid原理介绍(2)
- druid对数据密码加密
- druid数据库连接池
- druid基本配置项
- java后台框架 springmvc整合mybatis框架源码 bootstrap html5 mysql oracle
- JavaEE框架Bootstrap、HTML5、jQuery、SpringMVC
- druid 连接池配置
- 数据库连接池Druid的配置,实用