- 论坛徽章:
- 0
|
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程序的区别: 对于读写一致性不需要/需要人工干预 |
|