-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsql.xml
107 lines (90 loc) · 3.08 KB
/
sql.xml
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V5.0//EN"
"/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd" [
<!ENTITY article.author.xml SYSTEM "../common/article.author.xml">
<!ENTITY book.info.legalnotice.xml SYSTEM "../common/book.info.legalnotice.xml">
<!ENTITY book.info.abstract.xml SYSTEM "../common/book.info.abstract.xml">
]>
<article xml:base="http://netkiller.sourceforge.net/article/syslog.html"
xmlns="http://docbook.org/ns/docbook" xml:lang="zh-cn">
<articleinfo>
<title>SQL 优化</title>
<subtitle></subtitle>
&article.author.xml;
&book.info.legalnotice.xml;
<abstract>
</abstract>
&book.info.abstract.xml;
<keywordset>
<keyword>sql</keyword>
<keyword>mysql, mssql, oracle</keyword>
<keyword>postgresql</keyword>
<keyword>sql92,sql99</keyword>
</keywordset>
<pubdate>$Date: 2013-06-14 13:10:30 +0800 (Fri, 14 Jun 2013) $</pubdate>
<releaseinfo>$Id$</releaseinfo>
</articleinfo>
<section>
<title>日期型字段做索引</title>
<para>日期型字段做索引最长遇到的问题就是时间重复,导致返回结果非预期数量</para>
<para>实验环境:MySQL, create_time是unixtime风格的日期型字段ctime TIMESTAMP型的字段。</para>
<para>首先未ctime创建索引</para>
<screen>
<![CDATA[
CREATE TABLE `members_tmp` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`member_id` INT(11) NOT NULL,
`user_id` INT(11) NOT NULL DEFAULT '0',
`fields` TEXT NOT NULL,
`create_time` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
INDEX `user_id` (`user_id`),
INDEX `member_id` (`member_id`),
INDEX `ctime` (`ctime`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=40168;
]]>
</screen>
<screen>
<![CDATA[
select count(id) as c from members_tmp where ctime > '2011-';
或
select count(id) as c from members_tmp where ctime like '201%';
]]>
</screen>
<para>删除索引 INDEX `ctime` (`ctime`) 再次查看你会发现结果有所变化 </para>
<para>查看重复记录</para>
<screen>
<![CDATA[
explain select * from (select *,count(id) as c from members_tmp where ctime like '2012-%' group by ctime) as tmp order by c desc;
]]>
</screen>
</section>
<section>
<title>常用网络软件服务安装</title>
<section>
<title>net-snmp</title>
<para>用于服务器的状态监控</para>
<screen>
<![CDATA[
]]>
</screen>
</section>
</section>
<section>
<title>php-5.4.9</title>
<para>由于redhat与centosYUM源中尚未提供php-fpm所以我采用编译安装,网上有一些爱好者制作过php-fpm的rpm包。是否使用你自己那注意。</para>
<section>
<title>配置php.ini</title>
<para>备份配置文件,防止不小心改错而又找不出问题出在哪里。</para>
</section>
<section>
<title>PHP Extension - APC</title>
<para>Apc</para>
</section>
</section>
</article>