Win服务器配置

vcredist_x86

http://blog.cheungq.me/vcredist_x86.zip

php7

http://blog.cheungq.me/php.zip

高达模型-沙扎比.卡版 拼装记录(SAZABI Ver Ka)

相关信息

沙扎比,是由制造方阿纳海姆电子公司制造的机体。基本信息机体番号:MSN-04 驾驶员:夏亚‧阿兹纳布(Char‧Aznable)、 机体名称:サザビ-(日文) 沙扎比(中文) SAZABI(英文),机体类型:NT专用型MS 。

机体型号 MSN-04 中文名称 沙扎比
机体代号 サザビ- 英文名称 SAZABI
出现作品 逆袭的夏亚 –
机体类型 NT专用重火力高机动型MS
制造商 阿纳海姆电子公司
所属 新吉恩
初次配备 U.C.0093
机师名称
夏亚
机师图片

开盒时间2017-07-23

 

成品照

 

 

1.素组打磨&加深刻线

胸部

枪1,因为这把枪的零件弯折发白了,所以还是先拼起来吧,万一拼装途中再压到就完了 Continue reading

【mysql】insert … on duplicate key update column=IF(条件,值1,值2 ) 简直神一样的操作

Insert…on duplicate key相信大家都知道了,是一个非常好用的功能,可以在批量导入数据的时候插入并且保证在key冲突的时候执行更新操作而不是报错。笔者最近写代码的时候却碰到一个需求,就是想要在这个基础上根据某列的值来决定update后面的值,举个例子,如果columnA>0,那么更新columnB=1或者不更新,然后就在网上对duplicate key和update的用法大肆搜索一番,看有没有类似的用法,结果都是比较常规的用法,颇为失望。然后又想到普通的update是在后面加where条件的,那能不能试试直接加where条件呢?残念,这个也行不通。。。

然后在准备放弃老老实实用2条sql执行的时候,脑子里突然灵光一闪,想到mysql不是有自带函数的么?能不能结合利用一下呢?于是查mysql函数大全,我翻翻翻,bingo!终于被我找到一个函数

IF 函数用法

语法: IF(expr1,expr2,expr3)

函数用法说明:如果 expr1 是 TRUE (expr1 <> 0 and expr1 <> NULL) ,则 IF() 的返回值为 expr2 ; 否则返回值则为 expr3 。 IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定

这不就是我想要的吗?赶紧试试

INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,1,columnA)

自增

array(2) {
[0]=>
int(0)
[1]=>
int(0)
}

iframe异步加载页面动态内容,实现页面动静分离

之前实现了手机站小说封面页动静分离的改造,稍微简单啰嗦几句,后面有机会详细的再写下。

封面页以书为key,缓存起来封面页的静态的通用的,很少改变的主要部分内容,利用异步加载的方法,修改页面上个别按钮和个人信息的内容部分。主页面内容部分由原来的300-500ms的响应时间可降低至50ms左右,因为内容都是直接根据url里的书号产生的key来从存储中获得的。另外通过异步加载动态获取的内容可以控制在60-100ms之内,基本实现了页面的动静分离和提速。

现在的问题是这样的,因为某些原因页面上布置了至少4、5个广告,当用户处于2g,甚至GPRS网络的情况下,因为网速的限制以及其他的一些原因,原本用的jquery的ajax加载非常的滞后执行,导致页面显示出来后目录部分原本文字需要等待4、5秒才能看到动态加载获取到目录内容替换掉静态内容中的目录部分。

这样就会给用户及其不好的加载延后的体验,后来经过摸索实验。将目录部分的内容放在iframe中,随页面dom结构加载,并在iframe的内的页面末端加上js,将iframe内的目录部分的内容替换主页面的目录部分的内容。
Continue reading

Ubuntu Server 14.04 LTS 服务器配置(java)

1.sudo su,切换到管理员权限下
2.添加ppa
add-apt-repository ppa:webupd8team/java

3.apt-get update更新资源索引

apt-get update 和 upgrade 的区别

update

update 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

upgrade

upgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能是最新的。

An update should always be performed before an upgrade or dist-upgrade.

upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently installed with new versions available are retrieved and upgraded.


4.sudo apt-get install oracle-java8-installer

安装java

5 java -version 查看是否安装成功

java,php的BOM头处理

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
 
$auto = 1;
checkdir('C:\project\weibo');
function checkdir($basedir){
if ($dh = opendir($basedir)) {
  while (($file = readdir($dh)) !== false) {
    if($file{0} == '.')
    {
        continue;
    }
   if ($file != '.' && $file != '..'){
    if (!is_dir($basedir."/".$file)) {
     echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
    }else{
 
     $dirname = $basedir."/".$file;
     checkdir($dirname);
    }
   }
  }
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
  if ($auto == 1) {
   $rest = substr($contents, 3);
   rewrite ($filename, $rest);
   return ("<font color=red>BOM found, automatically removed.</font>");
  } else {
   return ("<font color=red>BOM found.</font>");
  }
}
else return ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/** 
 
 * 去除bom报头 
 
 */  
  
public static String formatString(String s) {  
  
    if (s != null) {  
  
          s = s.replaceAll("\ufeff", "");  
  
    }  
  
    return s;  
  
}

来源 http://blog.csdn.net/u012519664/article/details/41596857

MySQL分区性能初探[转]

一, 分区概念

分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。MySQL从5.1.3开始支持Partition。

分区和手动分表对比

手动分表 分区
多张数据表 一张数据表
重复数据的风险 没有数据重复的风险
写入多张表 写入一张表
没有统一的约束限制 强制的约束限制

MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用:

Range(范围)–这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。
Hash(哈希)–这中模式允许通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键进行分区的表。
Key(键值)-上面Hash模式的一种延伸,这里的Hash Key是MySQL系统产生的。
List(预定义列表)–这种模式允许系统通过预定义的列表的值来对数据进行分割。
Composite(复合模式) –以上模式的组合使用 

二,分区能做什么

逻辑数据分割
提高单一的写和读应用速度
提高分区范围读查询的速度
分割数据能够有多个不同的物理文件路径
高效的保存历史数据
一个表上的约束检查
不同的主从服务器分区策略,例如master按Hash分区,slave按range分区

Continue reading

MySQL表分区和分布性能测试[转]

MySQL分区性能测试
By 成江东, on 八月 31st, 2010
一,测试服务器配置:

Cpu: 2*4核Intel(R) Xeon(R) E5405 @ 2.00GHz

内存:4G

存储:36块1T的7.2K的SATA组成raid0。使用其中的1T

Mysql版本:5.1.45-community-log MySQL Community Server (GPL)

二,建测试表:

Myisam不分区不分表,单表10亿数据量:

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
create table biguser

(

   ID                   bigint not null auto_increment comment ‘自增ID’,

   Username             varchar(30) not null comment ‘用户名’,

   sex                  tinyint not null comment ‘性别’,

   birthday             datetime not null comment ‘生日’,

   email                varchar(50) not null comment ‘邮箱’,

   tel                  int not null comment ‘手机’,

   intro                varchar(255) not null comment ‘个人简介’,

   primary key (ID)

)

type = MYISAM

default charset=utf8;

Continue reading

Mysql分区表的使用

by steve(chowhwei@gmail.com) on Dec 16, 2015
分区表可以解决按月和按id物理分表引起的表数量过多的问题,提供一定的查询便利,使用过程中需要遵循一些约定,以避免查询扩散到所有分区。
Continue reading

MySQL的表分区详解[转]

这篇文章主要介绍了MySQL的表分区,例如什么是表分区、为什么要对表进行分区、表分区的4种类型详解等,需要的朋友可以参考下

一、什么是表分区
通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。
如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。

二、为什么要对表进行分区
为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。
分区的一些优点包括:
1)、与单个磁盘或文件系统分区相比,可以存储更多的数据。
2)、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。通常和分区有关的其他优点包括下面列出的这些。MySQL分区中的这些功能目前还没有实现,但是在我们的优先级列表中,具有高的优先级;我们希望在5.1的生产版本中,能包括这些功能。
3)、一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
4)、涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如 “SELECT salesperson_id, COUNT (orders) as order_total FROM sales GROUP BY salesperson_id;”。通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
5)、通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。

三、分区类型
· RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。
· LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
· HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
· KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

1.RANGE分区
基于属于一个给定连续区间的列值,把多行分配给分区。这些区间要连续且不能相互重叠,使用VALUES LESS THAN操作符来进行定义。以下是实例。 Continue reading

© 2017 CheungQ

Theme by Anders NorenUp ↑