`
文章列表
前言略,直奔主题.. #{}相当于jdbc中的preparedstatement ${}是输出变量的值 你可能说不明所以,不要紧我们看2段代码: String sql = "select * from admin_domain_location order by ?"; PreparedStatement st = con.prepareStatement(sql); st.setString(1, "domain_ ...
1. 当查询的参数只有一个时   findByIds(List<Long> ids) 1.a 如果参数的类型是List, 则在使用时,collection属性要必须指定为 list 复制代码 <select id="findByIdsMap" resultMap="BaseResultMap">          Select          <include refid="Base_Column_List" />          from jria where ID in          ...
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又有疑问了, ...
python对象概述 一切皆为对象,包括数字,字符串、函数等等。 python的核心数据类型 python的内置对象类型 1.、数字        例如:123, 3.23, 99L, 3+4j, Decimal 2、字符串     例如:'spam', "guido's" 3、列表         例如:[1,3,4,5], [1,[2,'three'],4] 4、字典         例如:{'food':'spam','taste':'yum'} 5、元组         例如:(1,'spam',4,'U') 6、文件         例如:myfile=open(' ...
针对IO,总是涉及到阻塞、非阻塞、异步、同步以及select/poll和epoll的一些描述,那么这些东西到底是什么,有什么差异? 一般来讲一个IO分为两个阶段: 等待数据到达 把数据从内核空间拷贝到用户空间 现在假设一个进程/线程A,试图进行一次IO操作。 A发出IO请求,两种情况:   1)立即返回   2)由于数据未准备好,需要等待,让出CPU给别的线程,自己sleep   第一种情况就是非阻塞,A为了知道数据是否准备好,需要不停的询问,而在轮询的空歇期,理论上是可以干点别的活,例如喝喝茶、泡个妞。   第二种情况就是阻塞,A除了等待就不能做任何事情。 数据终于准备好了,A现在要把数据 ...

高性能IO模型浅析

    博客分类:
  • j2se
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里 ...
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。 1. 字符串截取:left(str, length) mysql> select left('sqlstudy.com', 3); +-------------------------+ | left('sqlstudy.com', 3) | +-------------------------+ | sql ...
进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 (使用的是官方C#客户端的Inser ...
在Hive的是用中,我们经常会有这种需求: 按照同一个id进行Group By,然后对另一个字段去重,例如下面得数据: id pic 1 1.jpg 2 2.jpg 1 1.jpg 此时,是用DISTINCT或者2 col得Group By都是不行得,我们可以用这个UDAF:collect_set(col),它将对同一个group by 得key进行set去重后,转换为一个array。 再举一个例子,我们可以对pic进行去重,拼接: SELECT id, CONCAT_WS(',', COLLECT_SET(pic)) FROM tbl GROUP BY id 在这里CONCAT_WS是U ...

数据库水平切分方法

 
方法一:使用MD5哈希   做法是对UID进行md5加密,然后取前几位(我们这里取前两位),然后就可以将不同的UID哈希到不同的用户表(user_xx)中了。        通过这个技巧,我们可以将不同的UID分散到256中用户表中,分别是use ...

linux常见操作

 
空行过滤掉 在Linux上处理一些数据文件时,有时候需要将其中的空行过滤掉,系统中提供的各种工具都可以完成这个功能。将常用的介绍如下吧: 1. grep grep . data.txt grep -v '^$' data.txt grep '[^$]' data.txt 2. sed sed  '/^$/d' data.txt sed '/^\s*$/d' data.txt   #这个命令还可将完全空格、tab等组成的空行删掉。 # The character class \s will match the whitespace characters <tab> and <s ...
Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式。理想的实现取决于你的应用程序使用何种资源,你愿意在性能、安全、系统稳健性、数据完整方面做出何种权衡。在这次JavaWorld大会上,来自SpringSource的David Syer跟大家分享了Spring应用的几种事务处理机制、三种XA式、四种非XA式事务协议。 Spring框架支持Java Transaction API(JTA),这样应用就可以脱离Java EE容器,转而利用分布式事务以及XA协议。然而即使有这样的支持,XA开销是昂 ...
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1 ...
本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 本文原文连接: http://blog.csdn.net/bluishglc/article/details/7710738 ,转载请注明出处! 第一部分:一些常见的主键生成策略 一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据 ...

复制(Replication)

Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。 以下是关于 Redis 复制功能的几个重要方面: •Redis 使用异步复制。 从 Redis 2.8 开始, 从 ...
Global site tag (gtag.js) - Google Analytics