前天去面試,被問到了乙個和mysql相關的問題,c c 呼叫mysql的時候,是同步的還是非同步的?如果結果集很大,如何處理。我想問的是MYSQL有非阻塞的API嗎?

時間 2021-05-29 22:33:22

1樓:

今天沒有,不保證明天沒有啊。

2樓:鄧沐陽

挖墳~在mysql上面自己再封一層io server。可以保證對外類似於非同步的效果。

使用非同步的好處在於對外而言服務比較好設計。比如如果乙個執行緒需要服務多個使用者,總不能因為單個使用者查詢結果很大就阻塞其他使用者的操作。對於單個使用者而言速度不一定提公升,但整體服務的吞吐會上去。

當然如果是乙個執行緒服務乙個使用者那就沒必要了。

3樓:汝汝

客戶端處理結果集的方式有兩種。一種方式是,通過呼叫mysql_store_result(),一次性地檢索整個結果集。該函式能從伺服器獲得查詢返回的所有行,並將它們儲存在客戶端。

第二種方式是針對客戶端的,通過呼叫mysql_use_result(),對「按行」結果集檢索進行初始化處理。該函式能初始化檢索結果,但不能從伺服器獲得任何實際行。

4樓:alswl

2008 年這裡有一篇文章在 C Level 實現 MySQL Client 的非同步 API,~jk - Async MySQL Queries with C-API

但事實上,MySQL 的非同步意義是不大的,上層結構(HTTP / Net I/O)非同步,可以提高併發,而 MySQL 作為 DB 來講,是最後一層防線,它阻塞就應該阻塞了,不需要非同步。如果同步請求時候出現 Server IO 阻塞,那麼非同步時候 Server 一樣會阻塞,大家都在等待,併發量看上去提高了,但是 wait 時間提高了很多。

瓶頸如果存在,不是單單靠非同步可以解決的。

5樓:mysqlops

沒有聽說過訪問資料庫不採用堵塞的模式,否則就可能導致執行順序亂了~~~

」c/c++呼叫mysql的時候,是同步的還是非同步的「--這個應該是可以非同步方式呼叫,然後去做其他事情,所以一般是盡量讓事務小,或者說非事務相關的不會放一塊執行~

但是建立資料庫的連線線程肯定是阻塞的,否則就可能亂來~~

因為郵儲是秋招的最後乙個銀行,如果面試問到你有沒有報考其他銀行怎麼回答呢?

別把HR當傻子,在郵儲幹了N久的人難道會不知道自己這個銀行是個什麼德行?你說實話比較穩妥,你假如說你就指著郵儲進了,HR都懶得問你下個問題。面試最好的不是別人問啥你答啥,而是你要在回答中把他的思路引導到你的路子上去。不論是私企還是國企,情懷是說給不懂行的人聽的。現實是啪啪打臉的。 東吳教育安老師 建...

我去面試乙個企業,企業讓我帶成績單和證書去,面試完企業把證書和成績單收走了,讓我等通知,我該怎麼辦?

一席課 1 首先,以後給企業資料,都不要給原件,影印件就行。2 其次,和HR聯絡,讓把證書 成績單影印留存,你簽字說明是專用後,還給你。記得錄音,重點強調他們為什麼不歸還,然後報警。因為收走證件不還這個行為,本身是違規的,他們可以核查,但無權扣留。 梓公升諮詢 建議盡快聯絡企業方,把你的材料都要回來...

群面時被問到 讓你淘汰乙個組員,你選擇誰 這樣的問題,怎麼說才合適呢?

馮夏瀅家事律師 讓我說,我肯定是要淘汰對我最有競爭力的人,因此這樣的人肯定很優秀。但我認為我是團隊裡面最優秀的人,我總不能自己淘汰自己吧。 哈哈老學姐 這個題目我們昨天剛剛模擬練習過,感覺我們模擬練習的同學回答的其實非常好,沒有乙個人踩坑。先來說下這道題的坑 1 回答淘汰自己 X 不好意思,你自己都...