当你运营一个大型的MYSQL数据库站点的时候表出现现了损坏,我们如果使用phpmyadmin类型的功能修复超过1个大于1G的表,很有可能失败,遇到这样的情况我们就需要使用命令窗口去修复MYSQL的数据表。
首先打开CMD,连接到数据库;
mysql -uroot -p;
输入你的密码,然后用use命名打开数据库。
use 库名;
REPAIR TABLE 表名;
如果表只是有碎片的情况我们可以使用优化表的命令来操作:
OPTIMIZE TABLE 表名;
mysql替换命令是比较常见的,用法如下:
UPDATE `表名` SET content = REPLACE (content, '</td>', '' );
当你的数据库达到百万级后,使用下面的命令效率会低很多:
SELECT * FROM 表名 ORDER BY id LIMIT 1000, 10;
网上很多优化的方法是这样的:
SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10;
是的,速度提升到0.x秒了,看样子还行了。可是,还不是完美的!
要充分利用索引来提升读取速度。比上面那句,还要再快5至10倍。
SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;
另外,如果需要查询 id 不是连续的一段,最佳的方法就是先找出 id ,然后用 in 查询。
SELECT * FROM table WHERE id IN(10000, 100000, 1000000...);
如果需要按条件查询,还需要做组合索引或者分库分表技术达到亿级小case。
今天在转换数据的时候需要在网址加个前缀;
update 表名 set url=concat('http://www.55mx.com/',url);
原来的地址比如是:seo/,使用命令后内容变成了 http://www.55mx.com/seo/ 。
有加就有减,前缀也是可以减掉的:
update 表名 set url=right(url,length(url)-2);
从左数第二位之前的字符去掉;包括第二位。
导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
注意看前头,反过来就是导入了哦!
当前mysql有专门安全的导入命令:
mysql>source d:/dbname.sql
除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/9
《一些实用的mysql命令》的网友评论(0)