2019 3網上面試題備試(一) SQL篇

2021-09-13 15:32:40 字數 1499 閱讀 5997

如果有很多資料插入mysql 你會選擇什麼方式?

儲存過程

mysql儲存過程

mysql索引使用案例分析

關於sql查詢效率,100w資料,查詢只要1秒

索引,增加查詢速率

能能,能

不會應盡量避免在 where 子句中對字段進行表示式操作,這將導致引擎放棄使用索引而進行全表掃瞄

explain

mysql explain用法和結果的含義

不會,不會使用,(但不會使索引失效)

1.速率drop > truncate > delete

drop是ddl,會隱式提交,所以,不能回滾,不會觸發觸發器。

drop語句刪除表結構及所有資料,並將表所占用的空間全部釋放

truncate是ddl,會隱式提交,所以,不能回滾,不會觸發觸發器

truncate會刪除表中所有記錄

delete是dml,執行delete操作時,每次從表中刪除一行,並且同時將該行的的刪除操作記錄在redo和undo表空間中以便進行回滾(rollback)和重做操作,但要注意表空間要足夠大,需要手動提交(commit)操作才能生效,可以通過rollback撤消操作。

觸發器;線上慢查詢的排查

不支援,編碼utf8mb4

某些表資料達到500w+以後查詢統計效能嚴重下降

select * from information_schema.processlist where command = 'query';

檢查是否有死程序

select * from information_schema.innodb_trx;

kill 程序號

重新執行

讓主資料庫處理事務性增、改、刪操作(insert、update、delete),而從資料庫處理select查詢操作

mysqlproxy實際上是在客戶端請求與mysqlserver之間建立了乙個連線池。所有客戶端請求都是發向mysqlproxy,然後經由mysqlproxy進行相應的分析,判斷出是讀操作還是寫操作,分發至對應的mysqlserver上

【mysql 讀寫分離】10分鐘了解讀寫分離的作用

記錄一次經歷的資料庫從單庫到分庫分表的過程

是乙個記憶體常駐的問題,

但是實際上是表缺少索引,你在where,order by列新增索引 就不會有這種情況了。

產生的原因可能:你的錶行數很多,由於沒有新增索引,需要進行全表掃瞄,第一次需要從物理磁碟中將全表載入到記憶體中,很慢。第二次因為全表在記憶體中 所以查詢很快。

如果新增了索引的話,就不需要全表掃瞄,即使第一次也不需要載入全表資料

1.大大加快資料的檢索速度;

2.建立唯一性索引,保證資料庫表中每一行資料的唯一性;

3.加速表和表之間的連線;

4.在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間。

1.索引需要佔物理空間。

2.當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,降低了資料的維護速度。

牛客網的面試題(一)(字首,中綴,字尾)

1.題目 unsigned int a 0x1234 unsigned char b unsigned char a 在 32位大端模式處理器上變數 b等於 a 0x00 b 0x12 c 0x34 d 0x1234 解析 int 是4 個位元組,大端儲存,所以補齊的話是 a 0x00 00 12 ...

海盜瓜分金幣 一道網上流傳的微軟面試題

在乙個孤島上有 5個海盜要瓜分 100塊金幣 他們按下列方法來瓜分這些掠奪物 資格最老的海盜提出乙個分配意見 然後大家對這個分配意見投票表決 如果有一半的人投了贊成票 就按照這個方案來劃分 如果沒有通過 就殺調這個資格最老的海盜 然後再由活著的海盜中資格最老的海盜來提出分配方案 按照同樣的方式來投票...

乙個關於多執行緒的面試題,網上大多給了錯誤的答案

根據執行緒安全的相關知識,分析以下 當呼叫test方法時i 10時是否會引起死鎖?並簡要說明理由。public void test int i 答 不會發生死鎖,但有一點int是按值傳遞的,所以每次改變的都只是乙個副本,因此不會出現死鎖。但如果把int換做乙個object,那麼死鎖會發生 原來自己沒...