Chinaunix首页 | 论坛 | 博客
  • 博客访问: 551416
  • 博文数量: 76
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 827
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-26 10:53
文章分类

全部博文(76)

文章存档

2011年(47)

2010年(13)

2009年(5)

2008年(11)

分类: Mysql/postgreSQL

2011-07-16 16:51:00

mysql一些使用经验

--mysql注释符有三种:
 1、#... 2、"-- ..." 3、/*...*/

--why "alter table mytable delay_key_write=1;" rebuild the whole tables?and how to tunning it?
该参数为1后将对表的update操作指跟新数据到磁盘,而不更新索引到磁盘,把对索引的更改记录在内存。在关闭表的时候一起跟新索引到磁盘。 只对MyISAM引擎表有作用。

--在某些情况下,不重建表而更改表结构(超大表)
在同步缓存并锁表后直接替换.frm文件
mysql> FLUSH TABLES WITH READ LOCK;
mysql> ^Z
更新.frm文件 fg切换为mysql命令行
mysql> UNLOCK TABLES;
(备注:1.该方法适用的情况 Enum values (add and remove),Default values change,
      2.try this at your own risk.)
参考链接
http://www.mysqlperformanceblog.com/2007/10/29/hacking-to-make-alter-table-online-for-certain-changes/

--复位根用户密码?
  A:kill `cat /mysql-data-directory/host_name.pid`
     echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');">/var/lib/mysql/initfile
mysqld_safe --init-file=initfile &

--mysql 去掉表注释与列注释
  sed -i -e "s%COMMENT\ '.*\,$%\,%g" test.sql
  sed -i -e "s%COMMENT\='.*\;$%\;%g" test.sql

--连接
cross join 是笛卡儿乘积 就是一张表的行数乘以另一张表的行数
left join 第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null
right join 第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null
full join 返回两张表中的行 left join+right join
inner join 只返回两张表连接列的匹配项

--更改客户端连接超时时间。
需要同时更改 wait_timeout interactive_timeout

--CHECK TABLE语句和MYISAMCHK程序的区别:
对于读写一致性不需要/需要人工干预
阅读(821) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~