溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql中21個(gè)常用操作分享

發(fā)布時(shí)間:2021-09-08 16:51:51 來(lái)源:億速云 閱讀:169 作者:chen 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“mysql中21個(gè)常用操作分享”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“mysql中21個(gè)常用操作分享”吧!

創(chuàng)建service腳本
#cp /usr/local/src/software/mysql-5.1.38/support-files/mysql.server /etc/init.d/mysqld
#chmod 755 /etc/init.d/mysqld

//vim /etc/rc.d/init.d/mysqld #datadir=/mysqldata/
#chkconfig --add mysqld
#chkconfig mysqld on
#service mysqld restart

1. 開(kāi)啟慢查詢

set global long_query_time=2;
set global slow_query_log='ON';

2. mysql同步跳過(guò)錯(cuò)誤語(yǔ)句

發(fā)現(xiàn)mysql slave服務(wù)器經(jīng)常因?yàn)橐恍┨厥庾址蛘叻?hào)產(chǎn)生的更新語(yǔ)句報(bào)錯(cuò),整個(gè)同步也會(huì)因此而卡在那,執(zhí)行下面三條sql語(yǔ)句,跳過(guò)錯(cuò)誤即可。

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
 

3. mysql忽略指定類型錯(cuò)誤

在my.cnf的[mysqld]下面加入了一行
slave-skip-errors = 1062 (忽略所有的1062錯(cuò)誤)
#slave-skip-errors=1062,1053
#slave-skip-errors=all

4. 錯(cuò)誤日志

vi /var/log/mysqld.log

5. 批量替換字符串中的關(guān)鍵字

UPDATE BBSTopic SET tcontents = replace(replace(tcontents,'GCD','') ,'找死','') where tcontents like '%GCD%' or tcontents like '%找死%' ;

6. 隨機(jī)查詢

測(cè)試時(shí)在select 中增加rand()*min(id), 實(shí)現(xiàn)隨機(jī)查詢。 用order by rand() limit 3的效率會(huì)很低

7. 修改密碼

mysql>set password for root=password("root");

8.分組求最大值

select hh.id,hh.name,hh.record from test as hh where hh.record = (select max(record) from test  where name=hh.name)

9. 修復(fù)并優(yōu)化所有數(shù)據(jù)
http://blog.csdn.net/doney_dongxiang/archive/2009/11/26/4878415.aspx

10. 具有負(fù)載均衡功能的MYSQL服務(wù)器集群部署及實(shí)現(xiàn)
 

http://www.cnblogs.com/runfeng/archive/2011/04/26/2028924.html

11. 查看和清理binlog
mysql > show binary logs;
mysql > purge binary logs to 'mysqld-bin.000007';

12. API

mysql_data_seek()//移動(dòng)內(nèi)部返回的列指針到指定的 row_number 

13.  導(dǎo)出msyql的操作記錄

mysql>  pager cat > /tmp/t1.txt ;
mysql> PAGER set to 'cat > /tmp/t1.txt' ; 
mysql>  select 1;\! cat /tmp/t1.txt


14. mysql中得到記錄行號(hào)

set @mycnt = 0;
select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol;
select (@mycnt := @mycnt + 1) as ROWNUM, id,name from b,(SELECT @mycnt:=0) cc;
Select UID,(@rowNum:=@rowNum+1) as rowNo From a, (Select (@rowNum :=0) ) b Order by a.Money Desc;

15. purge

mysql> help purge
Name: 'PURGE MASTER LOGS'
Description:
Syntax:
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
Deletes all the binary logs listed in the log index prior to the
specified log or date. The logs also are removed from the list recorded
in the log index file, so that the given log becomes the first.
This statement has no effect if the --log-bin option has not been
enabled.
URL: http://dev.mysql.com/doc/refman/5.0/en/purge-master-logs.html
Examples:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';

16. 導(dǎo)數(shù)據(jù),用指定分隔符分開(kāi)列

mysql > select id ,name,uid from a_result_user where  id >= '20101111'  into outfile '/tmp/a_result_user' FIELDS TERMINATED BY ','ENCLOSED BY '"' LINES TERMINATED BY '\n';
# 請(qǐng)注意如果用Windows中的編輯器(使用\r\n做為行的結(jié)束符)創(chuàng)建文件,應(yīng)使用:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
# 如果你愿意,你能明確地在LOAD DATA語(yǔ)句中指出列值的分隔符和行尾標(biāo)記,但是默認(rèn)標(biāo)記是定位符和換行符

17. SHOW BINLOG EVENTS

SHOW BINLOG EVENTS   [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count] 

用于在二進(jìn)制日志中顯示事件。如果您不指定'log_name',則顯示第一個(gè)二進(jìn)制日志

18. myisamchk

myisamchk --recover *.MYI 要在表未被更新時(shí),同mysql> OPTIMIZE 
注意: 需要有足夠的剩余硬盤空間,還要記得事后mysql> flush tables;

19. mysqlcheck
檢查、修復(fù)、分析以及優(yōu)化表的表維護(hù)客戶程序。參見(jiàn)8.7節(jié),“mysqlcheck:表維護(hù)和維修程序”。

20. OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

如果您已經(jīng)刪除了表的一大部分,或者如果您已經(jīng)對(duì)含有可變長(zhǎng)度行的表(含有VARCHAR, BLOB或TEXT列的表)進(jìn)行了很多更改,則應(yīng)使用OPTIMIZE TABLE。被刪除的記錄被保持在鏈接清單中,后續(xù)的INSERT操作會(huì)重新使用舊的記錄位置。您可以使用OPTIMIZE TABLE來(lái)重新利用未使用的空間,并整理數(shù)據(jù)文件的碎片。

在多數(shù)的設(shè)置中,您根本不需要運(yùn)行OPTIMIZE TABLE。即使您對(duì)可變長(zhǎng)度的行進(jìn)行了大量的更新,您也不需要經(jīng)常運(yùn)行,每周一次或每月一次即可,只對(duì)特定的表運(yùn)行。

注意,在OPTIMIZE TABLE運(yùn)行過(guò)程中,MySQL會(huì)鎖定表。OPTIMIZE TABLE語(yǔ)句被寫(xiě)入到二進(jìn)制日志中,除非使用了自選的NO_WRITE_TO_BINLOG關(guān)鍵詞(或其別名LOCAL)。已經(jīng)這么做了,因此,用于MySQL服務(wù)器的OPTIMIZE TABLE命令的作用相當(dāng)于一個(gè)復(fù)制主服務(wù)器,在默認(rèn)情況下,這些命令將被復(fù)制到復(fù)制從屬服務(wù)器中。

21.  int(M) 在 integer 數(shù)據(jù)類型中,M 表示最大顯示寬度

在 int(M) 中,M 的值跟 int(M) 所占多少存儲(chǔ)空間并無(wú)任何關(guān)系。 int(3)、int(4)、int(8) 在磁盤上都是占用 4 btyes 的存儲(chǔ)空間。即除了顯示時(shí)的效果有點(diǎn)不同外,int(M) 跟 int 數(shù)據(jù)類型是相同的。
如果int的值為10:int(10)顯示結(jié)果為0000000010; int(3)顯示結(jié)果為010。
就是顯示的長(zhǎng)度不一樣而已,都是占用四個(gè)字節(jié)的空間。

感謝各位的閱讀,以上就是“mysql中21個(gè)常用操作分享”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)mysql中21個(gè)常用操作分享這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI