mysql

常見的儲存引擎

InnoDB MyISAM

MyISAM和InnoDB的區(qū)別

①InnoDB支持事務(wù),MyISAM不支持②InnoDB是行級鎖,MyISAM是表級鎖③InnoDB支持外鍵,MyISAM不支持外鍵④MyISAM支持全文索引,InnoDB部分版本不支持,但是我們可以通過插件來實現(xiàn)⑤InnoDB支持多版本并發(fā)控制,MyISAM不支持

MySQL的事務(wù)隔離級別有哪些

已讀未提交:一個事務(wù)還沒提交的時候,他的操作可以被其他事務(wù)看到已讀已提交:一個事務(wù)提交之后,他的操作才可以被其他事務(wù)看到可重復(fù)讀:一個事務(wù)執(zhí)行過程中,他讀取到的數(shù)據(jù)總是一致的可串行化:一個事務(wù)讀取數(shù)據(jù)的時候會進行加鎖,如果其他事務(wù)要讀取數(shù)據(jù),只能等之前事務(wù)完成之后才能讀取

一千萬條數(shù)據(jù)的表, 如何分頁查詢

我們使用limit來進行分頁的話,執(zhí)行時間會很長,我們可以使用當(dāng)前頁最后一條id來幫我們提高效率,也就是再加上id來作為分頁的條件 select * from where id>#{id} limit #{limit},這種情況下id是要有序的

訂單表數(shù)據(jù)量越來越大導(dǎo)致查詢緩慢, 如何處理

由于訂單表的使用率不高,我們可以將之前的訂單數(shù)據(jù)按月或者年進行分庫分表操作,減輕我們數(shù)據(jù)庫查詢的負擔(dān)

MySQL中有哪些鎖

①行級鎖:開銷大,鎖速度慢,會出現(xiàn)死鎖,鎖定粒度是最小的,并發(fā)度是最高的②表級鎖:開銷小,鎖速度快,不會出現(xiàn)死鎖,鎖定粒度也是最大的,并發(fā)度是最底的③頁面鎖:處于行級鎖和表級鎖之間,會出現(xiàn)死鎖,并發(fā)度一般

MySQL 中有哪些不同的表格

MyISAM ISAM:早期Mysql版本的缺省表類型InnoDB Merge heap:讀取速度最快

CHAR 和VARCHAR 的區(qū)別

char是長度不可變的,varchar是長度可變的char的效率比varchar效率要高

可以使用多少列創(chuàng)建索引

一個表中最多可以有16個索引列

NOW()和 CURRENT_DATE()有什么區(qū)別?

now(): 年月日時分秒current_date(): 年月日?

什么是通用 SQL 函數(shù)?

MySQL中提供了很多函數(shù)讓我們進行調(diào)用,比如:YEAR(),MAX(),CONCAT(),MOUNTH(),CURRENT_DATE()

MySQL支持事務(wù)嗎

在缺省模式下,mysql是autocommit模式的,當(dāng)數(shù)據(jù)庫進行修改操作的時候就會自動提交,所以在缺省模式下是不支持事務(wù)的但是如果表的類型是InnoDB或者是BDB模式的話,是可以支持事務(wù)的,也就是通過setAutocommint=0來進行設(shè)置,但是設(shè)置了之后事務(wù)需要我們手動commit或者進行rockback回滾

MySQL的優(yōu)化有哪些?

①我們可以添加索引來提高數(shù)據(jù)的查詢效率? 索引分為BTree和哈希索引,哈希索引底層是哈希表,搜索效率比較高②通過sql語句來進行優(yōu)化 比如添加orderBy 或者條件查詢 (遵從小表驅(qū)動大表原則)③通過存儲引擎來進行優(yōu)化,存儲引擎有InnoDB(事務(wù))和MyISAM(查詢效率高)④通過分庫分表:根據(jù)規(guī)律分,降低數(shù)據(jù)庫的壓力(主從分庫 主庫負責(zé)寫,從庫負責(zé)讀)水平分庫/分表垂直分庫/分表垂直分表:可以將很多字段的表進行分表操作,將熱點數(shù)據(jù)的放一個表,不是熱點數(shù)據(jù)的放一個表(比如用戶表)垂直分庫:我們可以將通用表,字典表分到一個數(shù)據(jù)庫中

Myql語句的執(zhí)行流程from -> on? -> join -> where ->? group by ->having -> select -> distinct -> order by

Explain關(guān)鍵字

我們可以跳過explain關(guān)鍵字來查詢當(dāng)前這個sql語句的執(zhí)行計劃,也就是是否引入索引,有沒有全表掃描

Explain命令執(zhí)行后type類型可能出現(xiàn)什么參數(shù)?

null ->system->const->eq_ref->ref->range->index->all (性能從好到差)

Profiling工具的作用

profiling可以查詢優(yōu)化前sql和優(yōu)化后sql的性能(執(zhí)行時間),默認是不開啟的,我們可以通過set? profiling=1來開啟

單路排序和多路排序的區(qū)別與原理分析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來自公眾號JavaKeeper作者:派大新 ?寫在之前:不建議那種上來就是各種面試題羅列,然后背書式的去記憶,對技...
    夜空_2cd3閱讀 15,613評論 5 139
  • 數(shù)據(jù)庫基礎(chǔ)知識 為什么要使用數(shù)據(jù)庫 數(shù)據(jù)保存在內(nèi)存優(yōu)點: 存取速度快缺點: 數(shù)據(jù)不能永久保存 數(shù)據(jù)保存在文件優(yōu)點:...
    淺時咣閱讀 440評論 0 1
  • 數(shù)據(jù)庫基礎(chǔ)知識 為什么要使用數(shù)據(jù)庫 數(shù)據(jù)保存在內(nèi)存 優(yōu)點: 存取速度快 缺點: 數(shù)據(jù)不能永久保存 數(shù)據(jù)保存在文件 ...
    carter記錄閱讀 618評論 0 0
  • 數(shù)據(jù)庫基礎(chǔ)知識 1. 為什么要使用數(shù)據(jù)庫 數(shù)據(jù)保存在內(nèi)存 優(yōu)點:存取速度快 缺點:數(shù)據(jù)不能永久保存 數(shù)據(jù)保存在文件...
    Python百事通閱讀 470評論 0 1
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,834評論 28 54

友情鏈接更多精彩內(nèi)容