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) |