解决”mysql-bin.000001″占用超大空间的问题

用ports安装了mysql以后,过一段时间发现/var空间不足了,查一下,会发现是mysql-bin.000001、mysql-bin.000002等文件占用了空间,那么这些文件是干吗的?这是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。

mysql数据类型那么多,其中 int(1) 与 tinyint(1) 有什么区别?

mysql int(1) tinyint(1)有什么区别?
我指定了字段长度,类型还有意义吗?

Reply:
mysql 中int(1)和tinyint(1)中的1只是指定显示长度,并不表示存储长度,只有字段指定zerofill是有用
如int(3),如果实际值是2,如果列指定了zerofill,查询结果就是002,左边用0来填充。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.

INT[(M)] [UNSIGNED] [ZEROFILL]

mysql数据库另类查询in的用法详解

这里分两种情况来介绍

1、in 后面是记录集,如:

select  *  from  table  where   uname  in(select  uname  from  user);

2、in 后面是字符串,如:

select  *  from  table  where   uname  in(‘aaa’,bbb’,’ccc’,’ddd’,’eee’,ffff”);

注意:这里一定要将字符串用单引号” 标注起来;

如果是数字那么就是:

SELECT *  FROM table WHERE id IN ( 22, 21, 20, 19 )

3、in 后面是数组,用如下方法,请参考:

//$pieces是含数据的数组

for($i=0;$i<count($pieces);$i++){

$uname=$uname.”‘”.$pieces[$i].”‘,”;

}

$the_uname =”uname in(“.$uname.””)”;

select  *  from  table  where    “.$the_uname.” ;

备注:这种方法的原理其实很简单,二就是把数组编程上面“第2种情况”的形式

13456710
 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |