打開全日志后可以看。
創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為志丹企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),志丹網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
打開的方法是:
1、5.0的版本
在配置文件的mysqld段中,增加
log=/var/log/mysql.log(或者其他的你想放日志的路徑)
然后重啟數(shù)據(jù)庫
2、如果是5.1的版本
在配置文件的mysqld段中,增加
general_log_file=/var/log/mysql.log
然后重啟數(shù)據(jù)庫
5.1版本也可以不用重啟,全局設(shè)置一下,方法是:
set global general_log=1;
set global general_log_file=/var/log/mysql.log;
打開日志后,查看未提交事務(wù)的方法為:
連接到數(shù)據(jù)庫后,會分配一個連接id,然后追蹤此連接id,找到此連接執(zhí)行的所有sql,如果有begin,而沒有commit,那么這個語句就是未提交的。
如何查詢mysql事務(wù)未提交
打開全日志后可以看。
打開的方法是:
1、5.0的版本
在配置文件的mysqld段中,增加
log=/var/log/mysql.log(或者其他的你想放日志的路徑)
然后重啟數(shù)據(jù)庫
2、如果是5.1的版本
在配置文件的mysqld段中,增加
general_log_file=/var/log/mysql.log
然后重啟數(shù)據(jù)庫
5.1版本也可以不用重啟,全局設(shè)置一下,方法是:
set global general_log=1;
set global general_log_file=/var/log/mysql.log;
打開日志后,查看未提交事務(wù)的方法為:
連接到數(shù)據(jù)庫后,會分配一個連接id,然后追蹤此連接id,找到此連接執(zhí)行的所有sql,如果有begin,而沒有commit,那么這個語句就是未提交的。
大家好,我是Tom哥~
為了便于大家查找問題,了解全貌,整理個目錄,我們可以快速全局了解關(guān)于mysql數(shù)據(jù)庫,面試官一般喜歡問哪些問題
接下來,我們逐條來看看每個問題及答案
MyISAM 和 InnoDB 的區(qū)別?
答案:InnoDB 支持 事務(wù)、外鍵、聚集索引,通過MVCC來支持高并發(fā),索引和數(shù)據(jù)存儲在一起。InnoDB 不保存表的具體行數(shù),執(zhí)行 select count(*) from table 時需要全表掃描。而MyISAM 用一個變量保存了整個表的行數(shù)。
InnoDB 最小的鎖粒度是行鎖,MyISAM 最小的鎖粒度是表鎖,并發(fā)能力低。MySQL 將默認(rèn)存儲引擎是 InnoDB
mysql 鎖有哪些類型?
答案:mysql鎖分為共享鎖( S lock ) 、排他鎖 ( X lock ),也叫做讀鎖和寫鎖。根據(jù)粒度,可以分為表鎖、頁鎖、行鎖。
什么是間隙鎖?
答案:間隙鎖是可重復(fù)讀級別下才會有的鎖,mysql會幫我們生成了若干 左開右閉 的區(qū)間,結(jié)合MVCC和間隙鎖可以解決幻讀問題。
如何避免死鎖?
答案:死鎖的四個必要條件:1、互斥 2、請求與保持 3、環(huán)路等待 4、不可剝奪。
數(shù)據(jù)庫的隔離級別?
答案:讀未提交、讀已提交、可重復(fù)讀(mysql的默認(rèn)級別,每次讀取結(jié)果都一樣,但是有可能產(chǎn)生幻讀)、串行化。
Mysql有哪些類型的索引?
答案:
什么是覆蓋索引和回表?
答案:
1、覆蓋索引,指的是在一次查詢中,一個索引包含所有需要查詢的字段的值,可能是返回值或where條件
假如我們創(chuàng)建了一個(money,buyer_id)的聯(lián)合索引,索引的葉子節(jié)點(diǎn)包含了 buyer_id 的信息,則不會再 回表 查詢。
2、回表,指查詢時一些字段值拿不到,需要到主鍵索引B+樹再查一次。
Mysql的最左前綴原則?
答案:即最左優(yōu)先,在檢索數(shù)據(jù)時從聯(lián)合索引的最左邊開始匹配,直到遇到范圍查詢(如: 、 、between、like等)
例子:where a = 1 and b = 2 and c 3 and d = 4 ,如果建立(a,b,c,d)組合索引,d是用不到索引的;如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調(diào)整。
線上SQL的調(diào)優(yōu)經(jīng)驗(yàn)?
答案:
官方為什么建議采用自增id 作為主鍵?
答案:自增id是連續(xù)的,插入過程也是順序的,總是插入在最后,減少了頁分裂,有效減少數(shù)據(jù)的移動。所以盡量不要使用字符串(如:UUID)作為主鍵。
索引為什么采用B+樹,而不用B-樹,紅黑樹?
答案:提升查詢速度,首先要減少磁盤IO次數(shù),也就是要降低樹的高度。
事務(wù)的特性有哪些?
答案:ACID。
如何實(shí)現(xiàn)分布式事務(wù)?
答案:
日常工作中,MySQL 如何做優(yōu)化?
答案:
mysql 主從同步具體過程?
答案:
什么是主從延遲?
答案:指一個寫入SQL操作在主庫執(zhí)行完后,將數(shù)據(jù)完整同步到從庫會有一個時間差,稱之為主從延遲。計(jì)算公式:
注意:不同服務(wù)器要保持時鐘一致
主從延遲排查方法?
答案:通過 show slave status 命令輸出的 Seconds_Behind_Master 參數(shù)的值來判斷
主從延遲要怎么解決?
答案:
如果數(shù)據(jù)量太大怎么辦?
答案:mysql表的數(shù)據(jù)量一般控制在千萬級別,如果再大的話,就要考慮分庫分表。除了分表外,列舉了面對海量數(shù)據(jù)業(yè)務(wù)的一些常見優(yōu)化手段
分表后ID如何保證全局唯一呢?
答案:分庫分表后,多張表共用一套全局id,原來單表主鍵自增方式滿足不了要求。我們需要重新設(shè)計(jì)一套id生成器。特點(diǎn):全局唯一、高性能、高可用、方便接入。
分表后可能遇到的哪些問題?
答案:分表后,與單表的最大區(qū)別是有分表鍵 sharding_key ,用來路由具體的物理表,以電商為例,有買家和賣家兩個維度,以 buyer_id 路由,無法滿足賣家的需求,反之同樣道理。如何解決?