一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是很了解。
首先,我们需要想好到底分多少个表,前提当然是满足应用。这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10进行取模。另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了。
首先,我们需要想好到底分多少个表,前提当然是满足应用。这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10进行取模。另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了。
» 阅读全文
php写的太多了,有点疲劳了。。翻来覆去就那么点东西,似乎失去了新鲜感。
想找个什么东西来玩,或许python是个不错的选择,能干的事情也蛮多的。
只是这一切都要等着该死的加班结束以后。太累了。。。我恨加班!
想找个什么东西来玩,或许python是个不错的选择,能干的事情也蛮多的。
只是这一切都要等着该死的加班结束以后。太累了。。。我恨加班!
其实我这并不算是什么框架,只是一个我觉得适合我用的一个结构而已吧。
附件就是个例子,导入数据库sql文件就可以了,然后配置下_conf/__database.php这个文件就行了
本来想写详细一点的文档,可是一直在加班,实在没时间,只是把做过的一个小东西提出来了。有人用得上就试试吧。
下载文件 (已下载 220 次)
附件就是个例子,导入数据库sql文件就可以了,然后配置下_conf/__database.php这个文件就行了
本来想写详细一点的文档,可是一直在加班,实在没时间,只是把做过的一个小东西提出来了。有人用得上就试试吧。
下载文件 (已下载 220 次)引用
CREATE TABLE table1 (
id int(11) NOT NULL auto_increment,
type varchar(2) default NULL,
date datetime default NULL,
PRIMARY KEY (id) )
ENGINE=MyISAM DEFAULT CHARSET=gbk;
INSERT INTO `table1 ` (`id`, `type`,`date`) VALUES
(1,'A', '2007-05-28 12:17:59'),
(2,'A', '2007-05-28 13:17:59'),
(3,'B', '2007-05-28 13:23:59'),
(4,'B', '2007-05-28 14:25:59'),
(5,'C', '2007-05-28 15:25:20'),
(6,'C', '2007-05-29 22:25:20'),
(7,'B', '2007-05-29 23:26:20'),
(8,'A', '2007-05-29 09:16:46'),
(9,'B', '2007-05-30 09:16:46');
按照每天日期,然然后分组统计,按A分为一组, B,C分为一组分别进行统计统计结果如下
date A B,C
2007-05-28 2 3
2007-05-29 1 2
2009-05-30 0 1
id int(11) NOT NULL auto_increment,
type varchar(2) default NULL,
date datetime default NULL,
PRIMARY KEY (id) )
ENGINE=MyISAM DEFAULT CHARSET=gbk;
INSERT INTO `table1 ` (`id`, `type`,`date`) VALUES
(1,'A', '2007-05-28 12:17:59'),
(2,'A', '2007-05-28 13:17:59'),
(3,'B', '2007-05-28 13:23:59'),
(4,'B', '2007-05-28 14:25:59'),
(5,'C', '2007-05-28 15:25:20'),
(6,'C', '2007-05-29 22:25:20'),
(7,'B', '2007-05-29 23:26:20'),
(8,'A', '2007-05-29 09:16:46'),
(9,'B', '2007-05-30 09:16:46');
按照每天日期,然然后分组统计,按A分为一组, B,C分为一组分别进行统计统计结果如下
date A B,C
2007-05-28 2 3
2007-05-29 1 2
2009-05-30 0 1
» 阅读全文
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。
这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:
mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');
-> 3
WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> select WEEKDAY('1997-11-05');
-> 2
这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:
mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');
-> 3
WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> select WEEKDAY('1997-11-05');
-> 2
» 阅读全文








