自动修复MySQL的myisam表
常用MySQL的童鞋都知道这个myisam类型的表极容易损坏,多数人可能都是用myisamchk命令来人工修复,下面介绍一种自动修复myisam的方法,也是我上午刚学的,共同进步,呵呵~
在MySQL的配置文件my.cnf中,启动项部分加入myisam-recover设置数据恢复功能,具体参数如下:
DEFAULT
与没有使用--myisam-recover选项相同。
BACKUP
如果在恢复过程中,数据文件被更改了,将tbl_name.MYD文件备份为tbl_name-datetime.BAK。
FORCE
即使.MYD文件将丢掉多个行也进行恢复。
QUICK
如果没有删除块,不要检查表中的行。
我设置了BACKUP和FORCE参数,如下:
[mysqld]
myisam-recover=BACKUP,FORCE
此参数详细情况,请参考MySQL手册http://dev.mysql.com/doc/refman/5.0/en/server-options.html。
相关文档:
truncate table 清空表,和delete相似,但是在表非常大的时候,它是逐步释放的。
insert 如果在插入时,某个字段存在,我想更新可以通过 insert into tablename values() on duplicate key update id=id+1;
insert into tablename values(default) 默认自增长
select last_insert_id() 取最后插入一条。 ......
在mysql的slow query log中,可能存在类似这样的特殊记录:
# Time: 100127 23:17:01
# User@Host: root[root] @ [127.0.0.1]
# Query_time: 18446744073709.351562 Lock_time: 0.000129 Rows_sent: 1 Rows_examined: 11030
SET timestamp=1264663021;
SELECT dummy.id AS dummy_id
from dummy&nbs ......
笔者(mqboss)近期在做MySQL集群的技术调研,会陆续把自己的心得体会写出来和大家分享,请大家继续关注。
1.从mysq官方网站下载安装文件mysql-cluster-gpl-7.0.9-solaris10-sparc-64bit.tar.gz,并通过FTP上传到Solaris服务器上;
2.添加用户组mysql和用户mysql(注:mysql用户属于mysql用户组)
shell> groupadd mys ......
MYSQL where id in问题
SELECT * from product WHERE id IN (‘1522,1523,1524′)ORDER BY id DESC
在MYSQL里面执行这个语句只返回1522的值。
执行
SELECT * from product WHERE instr(‘1522,1523,1524′,id) ORDER BY id DESC
或者
SELECT * from product WHERE instr(‘1522,1523,1524 ......