MySQL中索引限制

1) MyISAM存储引擎的索引键长度的总和不能超过1000个字节

2)BLOB 和TEXT类型的列只能创建前缀索引

3)MySQL目前不支持函数索引

4)使用不等于(!=或<>)的时候MySQL无法使用索引

5)过滤字段使用了函数运算(如abs(column))后,MySQL无法使用索引

6)Join语句中Join条件字段类型不一致的时候,MySQL无法使用索引

7)使用LIKE操作的时候如果条件是以通配符开始(如%ABC)时,MySQL无法使用索引

8)使用非等值查询时候,MySQL无法使用HASH索引

MyISAM的Concurrent Insert

MyISAM中读写是相互阻塞的锁,很多人误认为MyISAM存储引擎是完全串行化,没有办法并行的,实际上,MyISAM中提供了一个非常有用的特性,就是Concurrent Insert。

在my.cnf中对Concurrent Insert可以进行配置,有三个可选值:0,1,2.

1) concurrent _insert =0 ,无论MyISAM的表数据文件中间是否存在因为删除而留下俄空闲空间,都不允许concurrent insert。

2)concurrent_insert = 1,是当MyISAM存储引擎表数据文件中间不存在空闲空间的时候,从文件尾部进行Concurrent Insert。

3)concurrent_insert = 2,  无论 MyISAM存储引擎的表数据文件的中间部分是否存在因为删除而留下的空闲空间,都允许在数据文件尾部进行concurrent insert操作。

从以上的赋值说明可以得出,在删除操作不是很多的情况下,可以选用 concurrent_insert =2  ,这样可以增大并发速度,但是会浪费一部分数据文件的空间,因为中间删除的空隙得不到数据填充。这个浪费在删除操作较多的情况下是非常可观的,所以在删除操作较多的情况下应该选用concurrent_insert =1,当然,假如你的对空间不是特别在乎,而且能很好的处理备份问题,选用concurrent_insert =2显然能提高你的MyISAM的并发读写能力。

Zabbix详细安装步骤

1.创建ZABBIX的系统账号
为了安全起见建议创建使用zabbix用户运行ZABBIX.
useradd zabbix

假如服务器本身已经有规划好的执行用户,此步可以省略

2.解压:
tar xvzf zabbix-1.1beta12.tar.gz
3.创建 ZABBIX 数据库
mysql -u test -p
>create database zabbix;
>quit;

cd create/schema
cat mysql.sql |mysql -u root -p zabbix
cd ../data
cat data.sql |mysql -u root -p zabbix
cat images_mysql.sql |mysql -u root -p zabbix

4.编译:
服务器端+客户端的编译:
./configure –with-mysql –with-net-snmp –enable-server –enable-agent –prefix=/usr/local/zabbix
客户端只需执行:
./configure –prefix=/usr/local/zabbix –enable-agent
make
make install
cd /usr/local/zabbix/bin
for i in * ; do ln -s /usr/local/zabbix/bin/$i /usr/bin/$i ; done

5.配置:
(1).vi /etc/services
该文件是zabbix建议操作,可忽略:
加入:
zabbix_agent 10050/tcp
zabbix_trap 10051/tcp
(2) WEB interface
回到zabbix的编译目录,
vi frontends/php/include/db.inc.php
更改数据库相关内容:
$DB_TYPE =”MYSQL”;
$DB_SERVER =”localhost”;
$DB_DATABASE =”zabbix”;
$DB_USER =”root”;
$DB_PWD =”";
cp -rf frontends/php /usr/local/www/html/zabbix -R
chown zabbix /usr/local/www/html/zabbix/ -R
(3) 生成配置文件:
mkdir /etc/zabbix
cp misc/conf/* /etc/zabbix/
配置相关内容(以下内容请根据大家具体服务器的IP/MYSQL的账号情况做相应修改):
zabbix_agent.conf
grep -v ‘^#’ zabbix_agent.conf |grep -v ‘^$’
Server=10.5.21.46
Timeout=3
UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin -uroot -p ping|grep alive|wc -l
UserParameter=mysql.uptime,/usr/local/mysql/bin/mysqladmin -uroot -p status|cut -f2 -d”:”|cut -f1 -d”T”
UserParameter=mysql.threads,/usr/local/mysql/bin/mysqladmin -uroot -p status|cut -f3 -d”:”|cut -f1 -d”Q”
UserParameter=mysql.questions,/usr/local/mysql/bin/mysqladmin -uroot -p status|cut -f4 -d”:”|cut -f1 -d”S”
UserParameter=mysql.slowqueries,/usr/local/mysql/bin/mysqladmin -uroot -p status|cut -f5 -d”:”|cut -f1 -d”O”
UserParameter=mysql.qps,/usr/local/mysql/bin/mysqladmin -uroot -p status|cut -f9 -d”:”
UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V

Read More »

信息泛滥

初中时代,老师告诉我们,我们即将进入一个信息爆炸的社会,你们要学习,学习,再学习。到了高中,老师说:21世纪是信息社会,谁先得到信息,谁就能获取胜利。到了博弈论里面就演变成了:成功者都是因为减少信息不对称。我想做个成功者,于是我想尽办法减少信息不对称,于是我注册了各种各样的社交网站,关注各种各样的我觉得有谱的信息,但突然有一天,有很多这样的同类社交网站诞生了,而且都宣称拥有很多用户,事实上也确实有很多用户。于是又诞生一个个类似hellotxt的网站,中国有嘀咕,饭否,叽歪等等,结果我现在打开网站得到的都是重复的信息,就像中国的几大门户网站一样。

于是我关闭FriendFeed ,Facebook,校内等等,我开始怀疑google的效能,我开始更多的关注语义搜索。

未来的世界,不是比拼谁能得到更多的信息,而是比拼谁更过滤掉无用的信息,语义搜索更好的传达了这一点。

所以新闻网站只要看一个就行了,社交网站也只要一个就可以,IM工具更只要一个……

忽然有一个想法,谁要是能做一个应用,把Facebook,twitter,校内,饭否,myspace等等网站聚合在一起,然后将一个用户可能看到的多条重复信息过滤之,这个应用应该能火起来。

开发环境的三大规则

1)使用源码控制
2) 使用单步创建
3)跟踪程序缺陷

每个人都有自己偏好的事情和做事方法,无论在开发那种大规模应用程序时,他们都会严格遵循这些作诗方法。具体的做事原则取决于所选择的特定的开发方法理论,但还是有一些普遍规则实际上是放之四海而皆准。对于大型Web应用程序的开发领域而言,以上三条在成功开发团队中屡见不鲜。可能是规则这个次太夸张了,称之为指导方针可能更适合一些。当然,不去应用这三条简单的规则也是可行的,仍然可以产出可用的产品。但这三条规则能够帮助你避开小规模应用程序迁移到大型程序时常常遇到的问题,并且帮助你更快的完成这个迁移过程。