自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tigernorth的专栏

Beginning Linux Programming 笔记

  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL 查询数据不一致

最近出现一个很奇怪的MySQL问题,使用不同select语句查询全部数据集居然得到不同的记录数。select * 得到4条记录,select 字段得到的是3条记录。    具体问题可以看下面的查询结果:mysql> select * from table_myisam; +----------+-------+-----

2012-11-14 23:37:42 3820

原创 如何优化MySQL insert性能

对于一些数据量较大的系统,面临的问题除了是查询效率低下,还有一个很重要的问题就是插入时间长。我们就有一个业务系统,每天的数据导入需要4-5个钟。这种费时的操作其实是很有风险的,假设程序出了问题,想重跑操作那是一件痛苦的事情。因此,提高大数据量系统的MySQL insert效率是很有必要的。    经过对MySQL的测试,发现一些可以提高insert效率的方法,供大家参考参考。1. 一条SQ

2012-10-20 23:50:22 17456 14

原创 MySQL锁的用法之行级锁

行级锁是MySQL中粒度最小的一种锁,他能大大减少数据库操作的冲突。但是粒度越小,实现的成本也越高。MYISAM引擎只支持表级锁,而INNODB引擎能够支持行级锁,下面的内容也是针对INNODB行级锁展开的。    INNODB的行级锁有共享锁(S LOCK)和排他锁(X LOCK)两种。共享锁允许事物读一行记录,不允许任何线程对该行记录进行修改。排他锁允许当前事物删除或更新一行记录,其他线程

2012-09-05 22:50:10 10940

原创 MySQL锁的用法之表级锁

锁机制是数据库有别于文件系统的一个重要的特点,也是用来管理并发访问的一个有效的方式。MySQL的锁分为表级锁、页级锁与行级锁。表级锁是MySQL中粒度最大的一种锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MYISAM与INNODB都支持表级锁定。    表级锁定分为两类,读锁与写锁。读锁是预期将对数据表进行读取操作,锁定期间保证表不能被修改。写锁是预期会对数据表更新操作

2012-09-03 00:22:34 3067

原创 PHP中MySQL连接管理

对于PHP程序来来说,MySQL是一种稀缺的资源。MySQL默认最大连接数为100,也即是最多接受100个MySQL的客户端连接。因此,PHP在使用MySQL连接时做了一些优化的处理。这些优化,可能对性能有所提升,但对使用MySQL连接的使用却也造成一些困惑。创建MySQL连接: resource mysql_connect ( [string server [, string use

2012-08-26 21:05:02 1698

原创 编写Linux定时处理程序

挺久没写blog了,觉得自己的确有点懒,还是得改改这个坏习惯。知识还是需要沉淀一下,并且可以跟大家分享分享。    本文要写的Linux定时处理程序,想必这是很多Linux开发人员需要处理的问题。例如编写一个每天数据入库程序,编写一个定时邮件通知程序等等。    对于定时处理程序,主要有两种方法可以实现。一种是使用crontab来做程序的定时启动,实现定时处理功能,一种是通过守护进程,间隔

2012-06-17 14:59:14 1794 1

原创 linux排重的方法

想必各位用linux的人都会碰到排重的问题,像查看一个日志文件,碰到很多重复记录,看起来很痛苦。还有像grep一下关键字,想找出现关键字的文件,但是出现了一堆重复的文件名,也是一件郁闷的事情。    下面给大家介绍两种linux排重的方法,一种是使用uniq命令,一种使用gawk。    uniq排重    uniq的作用是对相邻重复行进行排重处理,对无序的字符是没办法处理,所以需要配

2012-02-19 11:39:17 3447

原创 如何使用CURL复用连接(PHP)

HTTP1.0与HTTP1.1的一个很大的差别是HTTP1.1支持长连接。现实中有很多这个场景,就是请求了一个页面,然后这个页面的其他内容,例如CSS文件,JS文件都要从同一个服务(相同服务器,相同端口)上面获取。这些向相同服务器的请求如果能够复用连接,是很有利于提供网络性能。    总的来说,复用HTTP连接有两个好处:   1. 节省系统端口资源(每一次连接都要使用端口,端口的资源是有

2012-02-08 13:09:05 7362 2

转载 【转】如何才能做到网站高并发访问?

看了抚琴煮酒兄弟的文章http://andrewyu.blog.51cto.com/1604432/612032) 由感而发,随意谈了下高并发的一些经验,因此写了本文。      时间短,经验有限,可能有很多语句描述不清,错别字等,如果对大家有一丝帮助,我就很开心了,欢迎大家

2011-10-04 20:07:04 1004 1

原创 const常量详解

<br />    相信不少C++程序员都有过被const折腾的经历吧。特别像指向常量的指针,指针常量,指向常量的指针常量这些概念,记住两天就忘。今天我准备来系统总结下const的用法,说得不好,也请各位大神多多指教。<br />    C++引入常量这个概念,其实主要是出于安全性的考虑。相对于C里面的#define宏定义,const有了类型,也有利于编译器做检查,把一些错误在编译阶段就给我们指出来。<br />    常量,说得通俗一点就是一个不能被改变的量,大家只要使用时一直记住这个定义,应该能对con

2011-05-06 14:48:00 1373

原创 C++循环变量定义生命周期

    C++与C的一个最大的不同的是C要求所有变量要在最开始的就声明,而C++的变量是信手拈来,你什么时候想用,你就什么时候声明。这个简单的细节其实隐含了C与C++的设计逻辑有所区别。    C设计的时候其实更多是为编译器考虑问题,当所有变量在使用之前就声明的话,编译器更容易处理这些变量,在开始的时候就把他们都写入符号表中。在程序执行的时候直接查看符号表即可,而不用在程序执行到一半又去增加符号表的内容。然后C++设计的时候对安全性特别关注,对于类是有构造与析构处理的。而构造函数有时是需要参数,我们在程序的

2011-05-03 21:27:00 2691 1

原创 关于C++友元的一些思考

    友元在C++里面是一个比较重要的东西,对于类里面声明的私有数据与函数,如果在某些应用需求下需要被其他函数调用,这时候就需要使用友元函数。就好像给了一个声明,说某某函数是我这个类的一个好朋友,你们可以大胆地放他进入我的闺房,访问我的数据。    在C++里面,我们定义友元是使用friend 这个关键字。声明友元函数可以有下面四种情况。class X {private: int i;public: friend void h(); friend class Z; frin

2011-05-02 22:32:00 963

原创 从C到C++ 为何宏指令指令渐渐淡出我们的视线

    对于一个C程序员,对于#define这个宏指令应该再熟悉不过了。    #define有两种比较常用的方式,一种是用来定义固定的数值或字符串,例如#define MAX 1024。另外一种是定义简单的函数,例如:#define MAX(a,b) ((a)>(b)?:(a):(b))    然而对于面向对象的语言,例如C++,宏定义却慢慢淡出了我们的视线。这到底是为什么呢?   对于#define MAX 1024, 用C++的话一般都会使用const int MAX = 1024; 由于宏定义只是简

2011-04-20 11:14:00 1351

原创 微博API:获取用户发布的微博

<br />    最近是由于老师的要求,所有小小地研究下了微博开发平台。<br />    其实在微博开发平台上做开发很简单,只要上去创建一个应用,拿到source key跟secret就可以开始做自己的应用了。微博的API接口是基本都是通过url提供的,格式有XML跟json两种。获取数据之后你就可以做自己的处理了。<br />   这里我谈下如何获取指定用户发布的微博,比较郁闷的是,微博API文档上面并没有获取指定用户发布微博这个描述的东西,我找了三遍都没有找到。只找到一个比较接近一点的:获取当前登录

2011-04-18 14:11:00 8178 6

原创 Beginning Linux Programming 笔记(七)数据管理

<br />数据管理,这对每一个操作系统而言都是必须的。操作系统对数据的管理,可以分成三个方面,内存数据管理,文件管理和抽象数据管理。<br />内存数据管理<br />内存的管理应该对大部分C程序员都不陌生,对指针的内存分配是编程时经常会用到的。内存数据管理有下面几个主要函数:<br />#include<stdlib.h><br />void *malloc(size_t size);<br />void free(void *ptr_to_memory);<br />void *calloc(size

2011-04-18 13:45:00 828

原创 Beginning Linux Programming 笔记(六)使用curses管理基于文本的终端

<br />上一章我们从底层去学习终端的控制,这一章我们将继续讲讲终端,但是我们会从更高的角度来谈。对于一个程序,我们是希望能够比较友好的界面给用户使用,这一章讲的就是如何使用curses去管理我们的屏幕。<br />虽说现在的UI做得都很炫,对比起来,终端使用的界面是很不友善的,而且没有什么学习价值。但是我觉得终端下面的窗口控制思想跟那些图像界面下的UI控制思想是接近的。通过这章的学习,你能够从底层理解你现在使用的友善的窗口是如何发展过来的。<br />说概念感觉是比较抽象,具体问说使用curses能做什

2011-04-14 23:22:00 945

原创 Beginning Linux Programming 笔记(五)终端

<br />     在第四章中,我们简单了解了Linux的编程环境,第五章会进一步了解这个我们无时不刻使用的编程环境——终端。在这个终端上面,我们使用着Linux的强大功能,软件安装,卸载,运行,调试。当写好的程序在这个终端上跑的时候,是否有这么一个疑问:我们能不能控制终端的行为,控制它输入输出时的各种行为与处理方式。<br />      答案是可以的,这就是我们下面要讲的Linux终端。<br />     说终端,首先要从终端命令说起,对于我们平常使用的命令行工具,究竟它们是如何实现那些字符读取控制

2011-04-12 23:26:00 773

原创 Beginning Linux Programming 笔记(四)Linux编程环境

<br /><br />     第四章Linux编程环境相对比较简单,这一章介绍了与Linux编程开发中的一些相关知识。包括编程参数、环境变量、时间日期、临时文件、用户信息、日志与资源限制。<br />      编程参数<br />      编程参数上一章有做了简单的介绍,通过void main(int argc, char *argv[ ]) 来调用参数。对于比较简单的参数,我们可以简单通过数组argv[ ]来调用,如果是需要有选项功能,系统提供getopt()函数给我们进一步分析处理选项。<b

2011-04-10 00:10:00 885

原创 Beginning Linux Programming 笔记(三) 文件处理

<br />    我觉得Linux的一个伟大的地方就是它能够把一切设备都给转换成文件,让程序员易于处理。像我们使用硬盘,是通过挂载,把设备映射到文件上面去使用的。还有,想CPU的信息、内存的信息、当前进程的信息等等,都是存放在/proc/目录下,用户也可以通过修改一些参数以达到控制设备的作用。<br />    例如:运行 $ cat /porc/cpuinfo  就可以查看CPU当前信息<br />               运行 $ cat /proc/meminfo 就可以查看内存的使用情况<br

2011-04-09 01:43:00 888

原创 Beginning Linux Programming 笔记(二) shell编程

<br /><br />     shell是一种脚本语言,它是一种解释类型的语言。脚本语言跟以C为代表的高级语言的区别是脚本语言不用编译,直接通过解释代码行来工作,这种特点的好处是它的工作周期短,直接修改直接运行,不用经历冗长的编译等待。然而,这种直接解释的特点也让脚本语言本身会比较简单,在表示一些复杂的逻辑时比较困难。<br />    因此,通过综合使用两种类型的语言,取长补短,可以大大提高效率。像NS2(网络模拟工具)开发中,是同时配合使用TCL(脚本语言)跟C++(高级语言),把C++编写网络

2011-04-07 20:57:00 829

原创 Linux下修改MAC 地址

    相信使用校园锐杰的各位都会遇到一个问题,就是帐号跟MAC地址绑定在一起,想在另外一台电脑上面用却用不了。    其实电脑里面MAC地址是可以修改的,不过得强调一句,这个修改只是让系统以为你的MAC地址是另外一个,事实上MAC固化在网卡上面,是动也动不了的。    不过对付下锐杰还是没什么大问题。    ifconfig 是用来查看网络接口配置的,使用它也可以进行MAC地址修改。    像我电脑是使用eth1这个网卡来上网的,修改MAC命令就是: ifconfig eth1 hw ether xx:x

2011-04-06 20:51:00 1158

原创 Beginning Linux Programming 笔记(一) 新的开始

 是前段时间才铁定心要搞Linux,重新回归到C的怀抱。大学这两年,学过C,用过C++,搞过PHP,学了java,最后才良心发现,回过头来搞C。期末的时候借了两本书,一本是《Beginning Linux Programming 4th Edition》,一本是它的中文版《Linux程序设计》,都是六七百页的书,差不多可以当枕头的那种。回家那天正在犹豫要把那本书带回来,最后想不开把英文版的带回来,想着要体验一下原汁原味的东西。    现在开始写写一些笔记和体会,以后或许可以翻翻。    第一章是比较简单地对

2011-04-06 19:01:00 1134

ha_freshftp.exe

freshftp,是一款比较轻便的ftp管理工具,1M多一点,好东西来的。

2010-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除