
技术架构
文章平均质量分 80
lingshaoxia
这个作者很懒,什么都没留下…
展开
-
Mysql 事务
什么是事务?通俗点来说, 事务就是对一组由N条SQL语句(N>=1)组成的逻辑处理单元进行并发控制. 当这组SQL语句都执行成功时才会对数据库构成实际影响. 否则只要有一条SQL语句执行失败, 那么整组SQL都不会执行成功, 都不会对数据库有实际影响. 这样能确保这个事务中的这组SQL操作的统一性, 保证数据一致性.我们来结合实际的例子来理解事务的概念:-- 在 phpMyAdmin转载 2011-12-22 16:40:17 · 260 阅读 · 0 评论 -
优秀的API接口设计原则及方法
到目前为止,已经负责API接近两年了,这两年中发现现有的API存在的问题越来越多,但很多API一旦发布后就不再能修改了,即时升级和维护是必须的。一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的。如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的打击就更大。如果API经常发生变化,用户就会失去对提供方转载 2014-03-12 17:23:39 · 16982 阅读 · 0 评论 -
HTTP常见返回代码(HTTP Status codes)的分类和含义
HTTP错误主要分成三类:用户设备问题、Web服务器问题和连接问题。当客户端向Web服务器发送一个HTTP请求时,服务器都会返回一个响应代码。而这些响应代码主要分成五类。HTTP状态码中定义了5大类Statuscodes,分别是:Informational意义:信息范围:1XX100系列码从 100到199范围的HTTP状态码是信息报告码。基于各种原因考虑,大多数情况下转载 2012-06-13 09:21:41 · 1259 阅读 · 0 评论 -
Zend framework处理一个http请求的流程分析
1, 首先是bootstrap过程,初始化程序里用到的资源2, 创建一个Zend_Controller_Front实体,实现front controller模式,这个实体类会负责将http请求派遣到恰当的controller的action里。3, Front controller会创建俩个对象来封装http请求和http回复,分别是Zend_Controller_Request_H转载 2013-08-26 11:16:38 · 581 阅读 · 0 评论 -
web集群时session同步的种方法
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题:一,利用数据库同步session(小用户,单台服务器)在做多服务器session同步时我没有用这种方法,如果非转载 2013-05-14 08:56:16 · 569 阅读 · 0 评论 -
大型网站后台架构的演变
随着用户访问量的不断增加,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过度与变化来陈述。 1.1 网站后台架构 主要指由web server 、应用服务器、数据库、存储、监控等组成的网站后台系统。 1.2 架构演变 个人站点后台架构。如图2-1所示。图2-1 单台一组 如图所示,如果是个人站点,访问量不大,一般都是将web server、应转载 2012-04-11 16:20:05 · 280 阅读 · 0 评论 -
DNS负载均衡
DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。 直到现在,很多网站仍然使用DNS负载均衡来保证网站的运行和可访问性。从其实现和效果来看,主要有以下优缺点:转载 2012-04-11 15:10:30 · 445 阅读 · 0 评论 -
大型高并发高负载网站的系统架构
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是转载 2012-04-11 15:05:49 · 1038 阅读 · 0 评论 -
初级网站架构图示
网站基本架构图示:仅供参考,这个架构是针对仅有数台服务器的一般应用,门户型应用肯定要复杂的多。 本图由亿图图示专家绘制,此绘图软件值得推荐。 主要矛盾对于高并发的网站系统,最早暴露出来的问题就是数据库瓶颈,超级牛的数据库系统也很快会成为访问速度的瓶颈。所以,欲提高访问速度首先要解决的瓶颈就是数据库访问。策略就是一、缓存:1、Squid前端缓存;2、Mem转载 2011-12-26 16:02:35 · 711 阅读 · 0 评论 -
SVN管理
svn服务器有2种运行方式1.独立服务器 (例如:svn://xxx.com/xxx);2.借助apache。(例如:http://svn.xxx.com/xxx);为了不依赖apache,选择第一种方式-独立的svn服务器。svn存储版本数据也有2种方式:1.bdb;2.fsfs。因为BDB方式在服务器中断时,有可能锁住数据(搞ldap时就深受其害,没法根治),所原创 2014-03-28 12:19:21 · 466 阅读 · 0 评论 -
Windows系统刷新本地DNS缓存
昨天改IP的时候发现,虽然我新设置的的域名指向已经生效,但是本地查询到的DNS指向依旧是旧的,而且大约要1个小时以后本地才会生效...感觉应该是本地的DNS缓存在起作用(因为域名的TTL值是3600秒),具体什么是DNS缓存我就不说了,你可以理解成在TTL值的时间内如果已经查询过某域名,那么就不再查询,而是直接读取缓存数据。你可以使用这个命令来查看本机的DNS缓存。ipconfig转载 2014-09-19 19:37:56 · 562 阅读 · 0 评论 -
用DNSCrypt解决DNS污染造成的Dropbox无法连接问题
因为一些众所周知的原因,这几天Google服务(搜索、Gmail、Maps等)和Dropbox都不能用了。众所周知的原因有2种,一种是你到服务器之间的连接被WALL了;另一种是你的DNS请求被污染了,返回给你了一个不存在的目的地。Dropbox不能访问就是因为后者,DNS污染。因为到Dropbox之间的连接并没有被WALL,因此如果我们可以得到正确的DNS查询返回值,就可以正常同步Drop转载 2014-09-19 19:40:19 · 565 阅读 · 0 评论 -
MySQL索引
1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合原创 2012-05-19 17:22:06 · 294 阅读 · 0 评论 -
MySQL命令行技巧
虽然有许多基于GUI的MySQL客户端存在,如著名的phpMyAdmin和SQLYog,但我一直喜欢原生的MySQL命令行客户端,的确,在未熟悉这些命令行接口(CLI)之前,我们需要花一些时间来熟悉它们,特别是你平时不是经常在具有强大的CLI环境的操作系统下工作时,但只要经过一些练习,你就可以通过CLI管理用户,浏览你的数据库和执行其它任务,其快感是其它人体会不到的。 在这篇文章中,我将原创 2013-09-13 11:10:22 · 552 阅读 · 0 评论 -
MySQL性能优化
一、优化概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们原创 2013-09-12 14:37:32 · 654 阅读 · 0 评论 -
select case when的一些用法
概述: sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作。首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下:SELECT =CASE when then when then ... when转载 2012-05-30 15:20:47 · 1325 阅读 · 0 评论 -
Mysql常用命令
mysql修改表名,列名,列类型,添加表列,删除表列alter table test rename test1; --修改表名alter table test add column name varchar(10); --添加表列alter table test drop column name; --删除表列alter tabl原创 2011-12-28 12:56:18 · 309 阅读 · 0 评论 -
mysql数据类型
MySQL数据库中常用字段类型:整数型:TINYINT,SMALLINT,INT,BIGINT小数型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:DATETIME ,DATE,TIMESTAMP备注型:TINYTEXT ,TEXT ,LONGTEXT整数型:有些整数类型以及他们最多所能拥有的数字位我们必须原创 2012-03-30 15:29:08 · 1071 阅读 · 0 评论 -
mysql用户权限
查看用户权限show grants for你的用户show grants for root@'localhost';show grants for current_user();查看当前登陆用户的权限取消用户权限REVOKE privileges (columns) ON what FROM user REVOKE语句只删除权限,而不删除用户。即使你转载 2012-06-12 18:13:50 · 406 阅读 · 0 评论 -
MyISAM和InnoDB的差别
1、如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。如果执行大量的SELECT,MyISAM是更好的选择。2、我需要使用事务处理,但是原来的数据表使用的是myisam,就需要改为bdb或者innodb,这样基于myisam的程序,将类型改为innodb后,原来的程序是不需要改动。3、myisam属于非事务安全型,innodb和bdb属于事务安全原创 2012-06-13 16:28:39 · 373 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I原创 2012-06-04 17:20:32 · 368 阅读 · 0 评论 -
mysql分表
一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执转载 2012-06-13 16:36:21 · 747 阅读 · 1 评论 -
MySQL语句优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null,可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t转载 2012-06-13 16:43:50 · 294 阅读 · 0 评论 -
SQL 总结
JOIN: 如果表中有至少一个匹配,则返回行LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行FULL JOIN: 只要其中一个表中存在匹配,就返回行 UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的原创 2012-06-15 09:26:32 · 447 阅读 · 0 评论 -
HTML5定稿了,为什么原生App世界将被颠覆
HTML5的“性工能”障碍得到解决,可以接近原生App的效果,所以它就可以替代原生App吗?很多人认为,即使HTML5会发展的比现在好,也将是与原生App各占一部分市场的格局,要求不高的长尾应用会使用HTML5,而主流应用仍是原生App的天下。但我认为这样的想法很危险,就像Apple成立前,HP的高层告诉沃兹:谁会在家里摆一台电脑呢?未来HTML5肯定会颠覆原生App。“性工能”障碍的消除转载 2014-11-14 09:38:17 · 694 阅读 · 0 评论