Tag Archives: select

Hive的SELECT时,打印列名,以及key value显示

在MySQL中,支持\G,按照key = value的方式显示。

Hive也是支持的,只不过通过参数配置产生。

1、打印列名:
set hive.cli.print.header=true;
2、每行显示一个key、value,即\G类似的方式
set hive.cli.print.header=true;
set hive.cli.print.row.to.vertical=true;
set hive.cli.print.row.to.vertical.num=1;[......]

继续阅读

MySQL中随机select记录

我有这个需求:

数据库中的uid离散分布不连续,需要随机select某一条记录。

1、最懒做法
select uid, uname from user order by RAND() limit 1
这个非常慢,因为几乎要遍历整个表。

2、用id随机范围。

其实如果我们能得到min(uid)和max(uid),然后随机这之间的某一个ID,再where >= 就可以了。

首先是获取min和max的uid:
select min(uid), max(uid)[......]

继续阅读

关于epoll和select的性能测试

epoll和select是Linux中提供的两种不同模型,epoll的并发性要好于select,那么究竟能好多少呢?我用前两天实现的Echo Server的epoll和select版本做了测试。
首先是非并发情况,就是一个Request完成后再下一个。
我的测试环境,均本地网络,CPU P8600 2.4G 非节能模式,buffer均为16字节,发送的测试数据为30字节左右。
epoll
5k 0.336841 0.341372 0.327373 0.309983 0.348396
10w[......]

继续阅读

Linux下用select()实现异步的Echo服务器

本例子使用异步socket(select方法)实现了ECHO服务器程序。
搞了一个晚上,终于弄好了,出现的问题主要如下:

  • 这是最重要的问题!当读取完数据后,需要将数据重新FD_SET进去,特别是serverFd,注意这个testFd意义非常重大,相当于参数传递中的复制行参,需要好好体会。
  • 当read(rd)后,返回为0表示客户端的socket已经关闭,此时除了要FD_CLR,还要关闭fd!!否则fd资源没有被释放,很快就会达到select监听的上限!

[cpp]
/*
* main.c[......]

继续阅读