MySQL内存表的特性与使用介绍
摘要:内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存放在内存中,临时表最大所需内存需要通过tmp_table_size = 128M设定。当数据超过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降,而内存表不会,内存表满后,会提示数据满错误。临时表和内存表都可以人工创建,但临时表更多的作用是系统自己创建后,组织数据以提升性能,如子查询,临时表在多个连接之间不能共享。这里只讨论内存表创建表是,用engine=heap可创建
阅读全文
posted @
2013-07-31 08:50
kkmm
阅读(515)
推荐(0) 编辑
基于SSD固态硬盘的数据库性能优化
摘要:基于SSD固态硬盘的数据库性能优化2010-11-08 00:0051cto佚名关键字:固态硬盘数据库管理SSD 企业软件热点文章 Java内存结构与模型结构分析 Oracle触发器的语法详解 NOR和NAND NOR和NAND都是闪存技术的一种,NOR是Intel公司开发的,它有点类似于内存,允许通过地址直接访问任何一个内存单元,缺点是:密度低(容量小),写入和擦除的速度很慢。NAND是东芝公司开发的,它密度高(容量大),写入和擦除的速度都很快,但是必须通过特定的IO接口经过地址转换之后才可以访问,有些类似于磁盘。 我们现在广泛使用的U盘,SD卡,SSD都属于NAND类型,厂商将fla...
阅读全文
posted @
2013-07-29 12:11
kkmm
阅读(796)
推荐(0) 编辑
DBUtils查找最大的ID总是返回0
摘要:1.实体:Java代码publicclassOrder{privateintid;privateDateorderDate;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicDategetOrderDate(){returnorderDate;}publicvoidsetOrderDate(DateorderDate){this.orderDate=orderDate;}@OverridepublicStringtoString(){return"Order[id="+id+"]
阅读全文
posted @
2013-07-25 17:09
kkmm
阅读(338)
推荐(0) 编辑
私钥公钥如何生成
摘要:用openssl,Linux上自带。常用命令如下:--生成RSA私钥(传统格式的)openssl genrsa -out rsa_private_key.pem 1024--将传统格式的私钥转换成PKCS#8格式的openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt--生成RSA公钥openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
阅读全文
posted @
2013-07-24 09:52
kkmm
阅读(899)
推荐(0) 编辑
公钥、私钥、数字证书的概念
摘要:公钥和私钥一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和私钥。 公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,
阅读全文
posted @
2013-07-24 09:35
kkmm
阅读(720)
推荐(0) 编辑
[Leet Code]Path Sum II
摘要:此题如果 #1 和 #4判断分支交换,大集合就会超时(因为每次对于非叶子节点都要判断是不是叶子节点)。可见,有时候if else判断语句也会对于运行时间有较大的影响。import java.util.ArrayList;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}public class Solution { private int currSum = 0; private ArrayList> result = new Array...
阅读全文
posted @
2013-07-23 14:54
kkmm
阅读(854)
推荐(0) 编辑
[Leet Code]Path Sum
摘要:很简单一道题,搞错了N次,记录一下。public class Solution { private int currSum = 0; public boolean hasPathSum(TreeNode root, int sum) { if (null == root) return false; currSum = 0; return hasPathSumCore(root, sum); } public boolean hasPathSumCore(TreeNode r...
阅读全文
posted @
2013-07-23 14:17
kkmm
阅读(416)
推荐(0) 编辑
反转链表(不改变指针)JAVA版
摘要:class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}public class Solution { private ListNode left; //java不支持c++的LinkedList &*p这种方式,所以用member variable来存放left private boolean alreadyDone = false; public void reverseLinkedList...
阅读全文
posted @
2013-07-23 11:10
kkmm
阅读(972)
推荐(0) 编辑
Netty服务器线程模型概览
摘要:一切从ServerBootstrap开始ServerBootstrap负责初始话netty服务器,并且开始监听端口的socket请求。bootstrap bootstrap =newServerBootstrap(newNioServerSocketChannelFactory(Executors.newCachedThreadPool(),//boss线程池Executors.newCachedThreadPool()//worker线程池));bootstrap.setPipelineFactory(newHttpChannelPipelineFactory());bootstrap.se
阅读全文
posted @
2013-07-20 14:42
kkmm
阅读(1995)
推荐(0) 编辑
Mysql 查看连接数,状态
摘要:命令: show processlist;如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。show processlist;只列出前100条,如果想全列出请使用show full processlist;mysql> show processlist;命令: show status;命令:show status like '%下面变量%';Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。Connections 试图
阅读全文
posted @
2013-07-19 10:22
kkmm
阅读(236)
推荐(0) 编辑
Java数据类型和MySql数据类型对应表
摘要:类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)描述VARCHARL+NVARCHARjava.lang.String12CHARNCHARjava.lang.String1BLOBL+NBLOBjava.lang.byte[]-4TEXT65535VARCHARjava.lang.String-1INTEGER4INTEGER UNSIGNEDjava.lang.Long4TINYINT3TINYINT UNSIGNEDjava.lang.Integer-6SMALLINT5SMALLINT UNSIGNEDjava.lang.Integer5MEDIUMINT8MEDIUM
阅读全文
posted @
2013-07-19 09:58
kkmm
阅读(229)
推荐(0) 编辑
curl网站开发指南
摘要:作者:阮一峰日期:2011年9月 4日我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。===================================curl网站开发指南阮一峰 整理curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于网站开发。一、查看网页源码直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短): curl w
阅读全文
posted @
2013-07-18 11:35
kkmm
阅读(360)
推荐(0) 编辑
2012 不宜进入的三个技术点(中)
摘要:赖勇浩(http://laiyonghao.com)线程线程是指进程中的一个单一顺序的控制流,是操作系统能够调度的最小单位,一个进程中可以有多条线程,分别执行不同的任务。线程有内核线程和用户线程之分,但在本文中仅指内核线程。在软件开发中,使用线程有以下好处:1、在多核或多路 CPU 的机器上多线程程序能够并发执行,提高运算速度;2、把 I/O,人机交互等与密集运算部分分离,提升 I/O 吞吐量和增进用户体验。线程的缺点也很明显:1、创建一条线程需要较大的内存开销,导致不能创建海量的线程;2、线程由操作系统调度(分配时间片),线程切换的 CPU 成本比较高,导致大量线程存在时大量 CPU 资源消
阅读全文
posted @
2013-07-18 09:38
kkmm
阅读(374)
推荐(0) 编辑
关于JAVA的参数列表传值的问题
摘要:java传参和C++传指针不一样。它不能传入一个参数,再用这个参数去new一个新的object,再调用者看来,这没用。java中传的参数是stack上复制的值,如果传的是object,那么传的是该object的一个拷贝引用。Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: class Vehic
阅读全文
posted @
2013-07-17 16:57
kkmm
阅读(818)
推荐(0) 编辑
使用MySQL Proxy和MySQL Replication实现读写分离
摘要:MySQL Replication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力。那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave上。如果每个应用都需要来实现读写分离的算法,一则成本太高,二来如果slave增加更多的机器,应用就要随之修改。明显的,如果在应用和数据库间加一个专门用于实现读写分离的中间层,则整个系统的架构拥有更好的扩展性。MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,
阅读全文
posted @
2013-07-16 10:42
kkmm
阅读(553)
推荐(0) 编辑
CentOS与RedHat的关系
摘要:一、CentOS与RedHat的关系RedHat在发行的时候,有两种方式:二进制的发行方式以及源代码的发行方式。无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次发布。但如果你使用了他们的在线升级(包括补丁)或咨询服务,就必须要付费。RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码重新编译一次,形成一个可使用的二进制版本。由于LINUX的源代码是GNU,所以从获得RedHat的源代码到编译成新的二进制,都是合法。只是RedHat是商标,所以必须在新的发行版里将RedHat的商标去掉。RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,
阅读全文
posted @
2013-07-16 10:35
kkmm
阅读(556)
推荐(0) 编辑
centos 自带mysql卸载时出现无法卸载情况
摘要:[dianyi@localhost ~]$ rpm -qa|grep mysqlmysql-libs-5.1.52-1.el6_0.1.x86_64[dianyi@localhost ~]$ rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64error: Failed dependencies: libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64 libmysqlclient.so.16(libmysqlclie...
阅读全文
posted @
2013-07-16 09:59
kkmm
阅读(1117)
推荐(0) 编辑
linux分区详解
摘要:点评:如果你想了解linux分区,请务必认真阅读本文.对于初学者来说,linux分区不像windows下那么一目了解. Linux 分区的规定 1. 设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。如果你想了解linux分区,请务必认真阅读本文.对于初学者来说,linux分区不像windows下那么一目了解. Linux 分区的规定 1. 设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。 Linux 把各种 IDE 设备分配了一个由 hd 前缀..
阅读全文
posted @
2013-07-15 17:39
kkmm
阅读(472)
推荐(0) 编辑
MYSQL MVCC实现及其机制
摘要:多版本并发控制 Multiversion Concurrency Control 大部分的MySQL的存储 引擎,比如InnoDB,Falcon,以及PBXT并不是简简单单的使用行锁机制。它们都使用了行锁结合一种提高并发的技术,被称为MVCC(多版本并 发控制)。MVCC并不单单应用在MySQL中,其他的数据库如Oracle,PostgreSQL,以及其他数据库也使用这个技术。 MVCC避免了许多需要加锁的情形以及降低消耗。这取决于它实现的方式,它允许非阻塞读取,在写的操作的时候阻塞必要的记录。 MVCC保存了某一时刻数据的一个快照。意思就是无论事物运行了多久,它们都能看到一致的数据。...
阅读全文
posted @
2013-07-15 11:54
kkmm
阅读(361)
推荐(0) 编辑
什么是共享锁?什么是排他锁?
摘要:什么是共享锁?什么是排他锁?共享锁:如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。排他锁:如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。简要说明为什么会发生死锁?解决死锁的主要方法是什么?若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁解决死锁的方法应从预防和解除的两个方面着手:(1)死锁的预防方法:①要求每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功)②规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。(2)允许死锁发
阅读全文
posted @
2013-07-15 09:16
kkmm
阅读(1760)
推荐(0) 编辑
理解HTTP session原理及应用
摘要:一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间 ①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作
阅读全文
posted @
2013-07-12 20:49
kkmm
阅读(1699)
推荐(0) 编辑
[leetcode] Restore IP Addresses
摘要:这个题目就和Palindrome Partitioning很像了,而且比那个的DFS的递归要简单一些,让常人更好理解一些。但是边界条件更多,要考虑清楚。整体思路就是深度优先搜索,首先看到边界条件没,如果没有,就深度搜索:一开始搜索1个字符和剩下的字符串,判断该字符的index是否越界了,对于剩下的字符串递归;然后是2个字符和剩下的字符串,判断这2个字符的首字符是否是0,对于剩下的字符串递归;然后是3个字符和剩下的字符串,判断这3个字符的首字符是否是0,并且这3个字符组成的数字是否小于等于255,对于剩下的字符串递归。ok,思路理清楚了,上代码:import java.util.ArrayLis
阅读全文
posted @
2013-07-10 19:14
kkmm
阅读(2974)
推荐(0) 编辑
论Java的ArrayList.add(e)和C++的vector.push_back(e)的区别
摘要:Java的ArrayList和C++的vector很类似,都是很基本的线性数据结构。但是他们的表现却不同。在工作中碰到一个问题就是,搞不清楚到底传进去的是一个新对象,还是当前对象的引用!经过实战分析:在Java的ArrayList.add(e)中,传入的是引用,因此当你传入e以后,再改变e的成员,则ArrayList里的e也同样会改变,因为本身e和ArrayList中的e就是同一个东西。而C++的vector.push_back(e)则会调用拷贝构造函数,因此当你传入e以后,再改变e的成员,则vector里的e不会变,因为已经是两个对象了。Java代码:import java.util.Arr
阅读全文
posted @
2013-07-10 18:13
kkmm
阅读(6476)
推荐(0) 编辑
[leetcode] Palindrome Partitioning
摘要:http://leetcode.com/onlinejudge#question_131这道题看了别人的深度优先搜索,基本上套用过来,过了。深度优先搜索可以是一个递归,不同于普通的递归是:普通的递归一般为:void func() { //terminated condition //do sth.. func();}而深度优先搜索的形式一般为:void func() { //terminated condition 中止条件肯定是有的 //do sth.. for ( ... ) { //当前层所有的可能往下一层走的分支,但是因为for是一次一次执行循环的,所以func会不...
阅读全文
posted @
2013-07-10 15:37
kkmm
阅读(1288)
推荐(0) 编辑
Linux下建立Nexus私服
摘要:要安装3个东西,然后配置私服:1、JDK2、Maven3、Nexus然后配置1、JDK的安装下载JDK安装包,格式为RPM格式,安装即可安装程序#rpm -ivh jdk-1_5_0_02-linux-i586.rpm出现安装协议等,按接受即可。Linux安装JDK步骤2.设置环境变量。#vi /etc/profile在最后面加入#set java environmentJAVA_HOME=/usr/java/jdk-1_5_0_02CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLA
阅读全文
posted @
2013-07-08 09:32
kkmm
阅读(4832)
推荐(0) 编辑
SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
摘要:排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一、row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示:select row_...
阅读全文
posted @
2013-07-06 18:03
kkmm
阅读(200)
推荐(0) 编辑
浅谈数据库索引
摘要:数据库索引是为了增加查询速度而对表字段附加的一种标识。见过很多人机械的理解索引的概念,认为增加索引只有好处没有坏处。这里想把之前的索引学习笔记总结一下:首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。那么在任何时候都应该加索引么?这里有几个反例:1、如果每次都需要取到所有表记录,无论如何都必须进行全表扫描了,那么是否加索引也没有意义了。2、对非唯一的字段,例如“性别”这种大量重复值的字
阅读全文
posted @
2013-07-06 16:57
kkmm
阅读(233)
推荐(0) 编辑
移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
摘要:HTTP 是应用层协议,TCP 是传输层协议(位于应用层之下),放在一起类比并不合适。不过猜测楼主是想对比 “标准 HTTP 协议” 还是 “自定义的协议(基于 TCP Socket)” 。一般来说,移动应用推荐使用 HTTP 协议,有很多优点:HTTP 发展成熟HTTP 几乎已经快成为一种通用的 Web 标准,Web Services、REST、Open API、OAuth 等等都是基于 HTTP 协议的。它已经不仅仅是 Hyper Text 的传输标准了,几乎所有数据的传输(多媒体、XML、JSON)都可以采用 HTTP。后台复用因为很多应用,除了有移动端,还有Web端,甚至桌面端。Web
阅读全文
posted @
2013-07-03 11:22
kkmm
阅读(1700)
推荐(0) 编辑
http协议学习系列
摘要:http协议学习系列1.基础概念篇1.1介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WW
阅读全文
posted @
2013-07-03 11:21
kkmm
阅读(1294)
推荐(0) 编辑
隐藏帧技术
摘要:Ajax通信支持许多不同的技术。每一种技术都有自己的优点和缺点,因此了解什么情况使用哪一种技术是很重要的。 隐藏帧技术 随着HTML帧的引入,隐藏帧(hidden frame)技术也应运而生了。该技术后面的基本想法是创建一个帧集,其中包含用于客户端—服务器通信的隐藏帧。可以通过将帧的宽度或高度设置为0像素来隐藏一个帧,以使其不显示。尽管一些早期的浏览器(诸如Netscape 4)不能够完全隐藏帧,经常会留下一些明显的帧边框,但该技术还是广泛地为开发人员所采用。 1. 模式 隐藏帧技术遵循一种特定的四步模式(参见图2-1)。第一步总是从一个与用户交互的Web页面中的可见帧开始的。显然,用...
阅读全文
posted @
2013-07-03 10:03
kkmm
阅读(674)
推荐(0) 编辑