- 博客(18)
- 资源 (15)
- 收藏
- 关注
原创 MySQL中Max+Group BY查询最大值记录无效
在SQL Server中 要对记录进行分类,并取出其中的最大最小项的时候,使用GROUP BY 加MAX/MIN函数实现,但是今天在MySQL中需要取出每天最晚产生的一条记录时,就不行了。如下面几张图所示(本来是有图片的,恩,CSDN的博客图片的方式真不敢恭维,这么老套,为什么就不支持直接题图呢,难道技术不行!搞不定), 是不是说MySQL中的这几个函数在这种场合下是无用的,那是不是MyS
2011-06-28 19:16:00 7120
原创 MySQL提供IP转换函数,对于IP类型的地址,建议使用int类型存储
不仅节省了存储空间,对比较也是比较快的,毕竟对整型和对15个长的字符比较差别还是很大的。查询语句中使用如下:select inet_aton(127.0.0.1),inet_aton(255.255.255.255),inet_ntoa(4294967295);
2011-06-20 19:50:00 6031
原创 MySQL在Windows平台下通信方式
在Windows平台下,MySQL可以使用三种方式和客户单通信。分别是套接字(SOCKET)、管道(Pipe)、共享内存(ShareMemory).而到底使用哪种方式,MySQL在编译的时候就已经决定了,在vio.c文件中会对通信方式进行初始化(vio_init函数,见后面),而对于不同类型的通信方式肯定会有不同的函数定义了,这些指针函数就定义在viosocket.c当中。这其中又有连个
2011-06-18 15:00:00 1102
原创 MySQL源码中处理客户端不同地址族的源码
在ws2def.h文件中定义的结构:typedef struct sockaddr_storage { ADDRESS_FAMILYss_family; // addressfamily CHAR __ss_pad1[_SS_PAD1SIZE]; // 6 byte pad, thisis to make
2011-06-18 12:15:00 968
原创 MySQL判断是否有数据可读源码
/** Indicate whether there is data to read on a given socket. @note An exceptional condition event and/or errors are interpreted as if there is data to read. @param sd
2011-06-18 11:23:00 861
原创 MySQL查看接收缓冲区数据长度
源码如下:/** Retrieve the amount of data that can be read from a socket. @param vio A VIO object. @param bytes[out] The amount of bytes available. @retval FALSE Success.
2011-06-18 10:38:00 1791
转载 在Ubuntu中设置samba共享可读写文件夹
一切按照下面这个连接一步一步地做就可以完成了,这里面说的是XP ,我使用的Window7 家庭版也能够正常的访问。http://www.neatstudio.com/show-526-1.shtml 为了预防作者删除,先复制一份过来 在ubuntu SERVER最初创建的时候就可以选择samba进行安装,如果你没有安装过,那就先运行apt-get install samba在网
2011-06-17 21:43:00 8971
原创 MySQL复制数据时判断是否要做字符集转换函数
在服务器和客户端设置相同的字符集对程序运行的影响如下:bool Protocol::net_store_data(constuchar *from,size_t length, CHARSET_INFO *from_cs,CHARSET_INFO *to_cs){ uint dummy_errors;
2011-06-16 20:05:00 970
原创 MySQL中表字段结构和行字段结构学习
在MySQL中对C/C++编程时使用的结构体MYSQL_FIELD、MYSQL_ROWS的实际原型定义如下:typedef struct st_mysql_field MYSQL_FIELD;typedef struct st_mysql_rows MYSQL_ROWS; typedef struct st_mysql_field { char *name;
2011-06-16 19:44:00 3350
原创 MySQL中两个表字段名相同导致的一个问题
今天在对两个表进行查询的时候,由于两个表的有已个字段名是相同的,最终导致了查询结果不是我要的,该问题导致我检查了很久啊。大致如下:表A字段:PID,PName,PNote表B字段:PID,Money,PayDate查询语句如下:SELECT PID,PName,(SELECT SUM(Money) FROM B WHERE PID=PID) TotalMoney ,PN
2011-06-15 19:20:00 8000 1
原创 初探MySQL网络处理部分
在MySQL的源码中,mysql_com.h和violite.h中都有定义网络处理的结构,而且从表面上看好像是互相嵌套的,但应该里面的几个宏在发挥作作用,现在还没有深入不是特别了解。在mysql_com.h中入下:struct st_vio;typedef struct st_vio Vio; typedef struct st_net{#if !defined(
2011-06-13 21:26:00 788
转载 MySQL中的ALIGN_SIZE宏解释
在看MySQL的内存池分配的时候,看见了ALIGN_SIZE宏,知道是用作字节对齐的,实现原理如何不甚很明白,在网上查了一下。找到了这么一篇http://bbs.chinaunix.net/archiver/tid-846225.html解释,该页面布局不太好看,就搬到这里来了。很实用的。原帖内容:以前对于这个宏有讨论过,不过似乎都讲得很模糊,作为一个知识点不应该有模糊这个宏
2011-06-08 12:50:00 2066
原创 MySQL内存池结构源码 my_alloc.h
MySQL使用内存池结构,理解该结构挺简单的,但是对于my_alloc.c中的分配过程感觉上很难理解。/* Data structures for mysys/my_alloc.c (rootmemory allocator)*/ #ifndef _my_alloc_h#define _my_alloc_h #define ALLOC_MAX_B
2011-06-07 20:03:00 1496
转载 MySQL中JOIN查询详解
MySQL中JOIN查询详解文章来源:原创 作者:zhjx922 更新时间:2011-02-14 16:53:59一般而言,如果要设计一个小型数据库(指代码量少),但又要适应海量数据及访问的性能需求,最有效的方法莫过于针对主要应用场景选择一个或几个性能优异的核心算法作为引擎,然后努力将一些非主要应用场景作为该算法的特例或变种植入到引擎当中。 MySQL、Postgre
2011-06-07 19:09:00 4946
原创 MySQL 从接收连接到执行连接命令的一个源码流程
MySQL 从接收连接到执行连接命令的一个源码流程函数从上到下的调用顺序mysqld_mainhandle_connections_methodshandle_connections_sockets_threadhandle_connections_socketscreate_new_threadcreate_thread_to_handle_connectionhandle_one_connectiondo_handle_one_connectionlogin_connectionprepare_new_
2011-06-02 20:04:00 782
原创 MySQL 服务器监听客户端连接源码
<br /><br />在下面的代码有,有些结构体还不清楚,如THD,st_vio,pollfd等。但可以看出MySQL使用Select模型来接收客户端的连接。而且也在网上查清,unix_sock是指同一机器中不同进程间的通信,如命名管道。而ip_sock指的是不同主机间的通信。<br />voidhandle_connections_sockets()<br />{<br /> my_socketUNINIT_VAR(sock),UNINIT_VAR(new_sock);<br /> uinter
2011-06-02 19:40:00 1497
原创 MySQL新增一个连接源码
<br /><br /> 当客户端向服务器发起查询时,就是和服务器之间建立了一个连接。而MySQL是提供了一个最大连接数限制的。所以,每次在一个连接建立成功后,服务器要给该连接分配处理线程的时候会判断现在的连接数是否已经操作了配置的最大连接数了。如果已经超过,则不会再分配线程来处理,直接关闭在连接。<br /> <br />staticvoidcreate_new_thread(THD*thd)<br />{<br /> DBUG_ENTER("create_new_thread");<br /> <
2011-06-02 19:10:00 978
原创 MySQL一个线程处理一个连接源码
<br /><br />MySQL新到来一个连接后,会为该线程分配一个线程。如果服务器已经有空闲的线程被缓存了,则直接使用。如果没有缓存可用的线程,则重新创建一个线程给该连接使用。<br />/*<br /> Scheduler that uses one thread per connection<br />*/<br /> <br />voidcreate_thread_to_handle_connection(THD *thd)<br />{<br /> if (cached_thread_cou
2011-06-02 18:49:00 2858
repo工具 可以用来下载android源码
2011-10-23
一个修改EXCEL表格中单元格数据的例子
2010-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人