之前帮一个客户做一个UID合并的工具,因为嫌一张张表番是否有uid字段太麻烦,于是就决定找一个轻松靠谱的方式去查整个库,终于还是在某个角落翻到了解法,貌似MYSQL自带的information_schema库的columns表里面都有存这些个东西,现在才知道…
{Name}替换为你要检索的字段名称.

1
SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE '{Name}';

评论

MYSQL内置函数汇总

发布于 tech

FROM_UNIXTIME(时间戳字段,’时间格式’)
DATE_FORMAT(普通格式时间字段,’时间格式’)
RAND() 0-1随机值

时间格式信息:

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

以后要汇总就方便了呢,直接GROUP BY和上面的一用就OK了(不过效率问题…)小东西还是可以这样的

评论

今天碰到一张表坏了,尝试各种办法无解,最后使用下面组合技搞定~
进SSH环境

1
2
3
4
myisamchk -of MYI文件绝对路径
myisamchk -r MYI文件绝对路径
myisamchk MYI文件绝对路径
service mysqld restart

然后用如下命令进MYSQL命令行

1
mysql -uroot -p

然后执行

bash use 数据库; REPAIR TABLE 数据表名称 USE_FRM;bash

评论

mysql alter 操作

发布于 tech

转自:http://www.sablog.net/blog/archives/551/

主键

1
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);

增加一个新列

1
2
alter table t2 add d timestamp;
alter table infos add ex tinyint not null default '0';

删除列

1
alter table t2 drop column c;

重命名列

1
alter table t1 change a b integer;

改变列的类型

1
2
alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';

重命名表

1
alter table t1 rename t2;

加索引

1
2
3
alter table tablename change depno depno int(5) not null;
alter table tablename add index 索引名 (字段名1[,字段名2 …]);
alter table tablename add index emp_name (name);

加主关键字的索引

1
alter table tablename add primary key(id);

加唯一限制条件的索引

1
alter table tablename add unique emp_name2(cardnumber);

删除某个索引

1
alter table tablename drop index emp_name;

修改表、增加字段

1
ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型

1
ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段

1
ALTER TABLE table_name DROP field_name;

评论

嗯,捣鼓了很久,终于成功加载了,OK,教程开始

1
cd /usr/local/directadmin/custombuild

编辑options.conf,修改对应行为

mysql=5.1
mysql_inst=yes
mysql_backup=yes

保存退出
然后执行

1
2
./build mysql
./build php n

然后,安装google的MYSQL工具

1
2
3
4
5
6
7
wget -c http://google-perftools.googlecode.com/files/google-perftools-1.6.tar.gz
tar zxvf google-perftools-1.6.tar.gz
cd google-perftools-1.6/
./configure
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig

最后找到/usr/bin/mysqld_safe

1
# executing mysqld_safe

下面加上

1
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

保存后,执行

1
2
service mysqld restart
lsof -n | grep tcmalloc

如果有显示类如

mysqld 11402 mysql mem REG 253,0 1574639 97853760 /usr/local/lib/libtcmalloc.so.0.0.0

那么恭喜,安装成功了,这次的优化工作就告一段落了.
顺手解释下上面都做了些什么
就是把DA默认的MYSQL5.0升级到了5.1,然后装了TCMalloc来优化mysql在高负载下的表现.
嗯,就是这样

评论

BranchZero

一只向全栈不断努力的 Web 开发者、运维、与眼镜娘控,面向 Google 和爆栈编程,继承了大部分理科宅的特性(除了审美),可惜是个 Acer


Web Developer


HangZhou