自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數(shù)據(jù)庫接口在VC中的實(shí)際應(yīng)用有哪些?

數(shù)據(jù)庫 MySQL
以下的文章主要介紹的是MySQL數(shù)據(jù)庫接口(ODBC API和C API)在VC中的實(shí)際應(yīng)用,以下就是文章的具體內(nèi)容的詳細(xì)描述。

MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫作為一種網(wǎng)絡(luò)數(shù)據(jù)庫性能十分出色,但其在應(yīng)用軟件中使用較少。本文將主要探討MySQL數(shù)據(jù)庫接口 ——(ODBC API和C API)在VC中的應(yīng)用,并且形成一個(gè)類用以封裝C API數(shù)據(jù)庫接口的功能。

 利用MySQL(和PHP搭配之最佳組合)自帶的C API函數(shù)實(shí)現(xiàn)數(shù)據(jù)庫功能調(diào)用

由于各個(gè)數(shù)據(jù)庫之間的差異,它們所提供的數(shù)據(jù)庫功能也就各有不同。這樣,通過ODBC API就不可能完全擁有所有的數(shù)據(jù)庫功能,因而影響了程序?qū)?shù)據(jù)庫的控制功能,也就不能充分發(fā)揮數(shù)據(jù)庫的能力。并且這種統(tǒng)一的接口還是以損失效能為前提的,這就使數(shù)據(jù)庫操作時(shí)間延長。所以,為了解決以上問題,MySQL(和PHP搭配之最佳組合)的制造商在提供ODBC驅(qū)動程序的基礎(chǔ)上,還提供了各種編程環(huán)境下的API,其中包括C API。這些API函數(shù)很顯然能盡可能地發(fā)揮數(shù)據(jù)庫的能力,并減少數(shù)據(jù)庫操作的延長時(shí)間,但卻使程序的通用性受到嚴(yán)重影響。

MySQL(和PHP搭配之最佳組合)提供了一套C API函數(shù),它由一組函數(shù)以及一組用于函數(shù)的數(shù)據(jù)類型組成,這些函數(shù)與MySQL(和PHP搭配之最佳組合) 服務(wù)器進(jìn)行通信并訪問MySQL數(shù)據(jù)庫接口,可以直接操控?cái)?shù)據(jù)庫,因而顯著地提高了操控效能。

C API數(shù)據(jù)類型包括:MySQL(和PHP搭配之最佳組合)(數(shù)據(jù)庫連接句柄)、MySQL(和PHP搭配之最佳組合)_RES(查詢返回結(jié)果集)、MySQL(和PHP搭配之最佳組合)_ROW(行集)、MySQL(和PHP搭配之最佳組合)_FIELD(字段信息)、MySQL(和PHP搭配之最佳組合)_FIELD_OFFSET(字段表的偏移量)、my_ulonglong(自定義的無符號整型數(shù))等;

C API提供的函數(shù)包括:MySQL(和PHP搭配之最佳組合)_close()、MySQL(和PHP搭配之最佳組合)_connect()、MySQL(和PHP搭配之最佳組合)_query()、MySQL(和PHP搭配之最佳組合)_store_result()、MySQL(和PHP搭配之最佳組合)_init()等,其中MySQL(和PHP搭配之最佳組合)_query()最為重要,能完成絕大部分的數(shù)據(jù)庫操控。

下面將具體討論數(shù)據(jù)庫操作類CDatabase通過C API的實(shí)現(xiàn)以及在VC中的應(yīng)用。

查看max_connections、max_connections的辦法見后。

 

如果 threads_connected == max_connections 時(shí),數(shù)據(jù)庫系統(tǒng)就不能提供更多的連接數(shù)了,這時(shí),如果程序還想新建連接線程,數(shù)據(jù)庫系統(tǒng)就會拒絕,如果程序沒做太多的錯(cuò)誤處理,就會出現(xiàn)類似強(qiáng)壇的報(bào)錯(cuò)信息。

因?yàn)閯?chuàng)建和銷毀數(shù)據(jù)庫的連接,都會消耗系統(tǒng)的資源。而且為了避免在同一時(shí)間同時(shí)打開過多的連接線程,現(xiàn)在編程一般都使用所謂數(shù)據(jù)庫連接池技術(shù)。

但數(shù)據(jù)庫連接池技術(shù),并不能避免程序錯(cuò)誤導(dǎo)致連接資源消耗殆盡。

這種情況通常發(fā)生在程序未能及時(shí)釋放數(shù)據(jù)庫連接資源或其他原因造成數(shù)據(jù)庫連接資源不能釋放,但強(qiáng)壇系統(tǒng)估計(jì)不會發(fā)生這種低級的編程錯(cuò)誤。

該錯(cuò)誤的簡便的檢查辦法是,在刷新強(qiáng)壇頁面時(shí),不斷監(jiān)視threads_connected的變化。如果max_connections足夠大,而threads_connected值不斷增加以至達(dá)到max_connections,那么,就應(yīng)該檢查程序了。當(dāng)然,如果采用數(shù)據(jù)庫連接池技術(shù),threads_connected增長到數(shù)據(jù)庫連接池的最大連接線程數(shù)時(shí),就不再增長了。

 

從強(qiáng)壇出錯(cuò)的情況看,更大的可能性是數(shù)據(jù)庫系統(tǒng)沒能進(jìn)行適當(dāng)?shù)嘏渲?。下面提出一點(diǎn)建議。供參考

讓你們的工程師把MySQL(和PHP搭配之最佳組合)的最大允許連接數(shù)從默認(rèn)的100調(diào)成32000。這就不會老出現(xiàn)連接過多的問題了。

 

查看max_connections

 

進(jìn)入MySQL(和PHP搭配之最佳組合),用命令:show variables

查看MySQL數(shù)據(jù)庫接口最大可連接數(shù)的變量值:max_connections

 

查看threads_connected

進(jìn)入MySQL(和PHP搭配之最佳組合),用命令:show status

查看當(dāng)前活動的連接線程變量值:threads_connected

 

 

設(shè)置max_connections

 

設(shè)置辦法是在my.cnf文件中,添加下面的最后紅色的一行:

  1. [MySQL(和PHP搭配之最佳組合)d]   
  2. port=3306   
  3. #socket=MySQL(和PHP搭配之最佳組合)   
  4. skip-locking   
  5. set-variable = key_buffer=16K   
  6. set-variable = max_allowed_packet=1M   
  7. set-variable = thread_stack=64K   
  8. set-variable = table_cache=4   
  9. set-variable = sort_buffer=64K   
  10. set-variable = net_buffer_length=2K   
  11. set-variable = max_connections=32000  

 

 

修改完畢后,重啟MySQL(和PHP搭配之最佳組合)即可。當(dāng)然,為了確保設(shè)置正確,應(yīng)該查看一下max_connections。

注意:

1、雖然這里寫的32000。但實(shí)際MySQL(和PHP搭配之最佳組合)服務(wù)器允許的最大連接數(shù)16384;

 

2、除max_connections外,上述其他配置應(yīng)該根據(jù)你們系統(tǒng)自身需要進(jìn)行配置,不必拘泥;

 

3、添加了最大允許連接數(shù),對系統(tǒng)消耗增加不大。

 

4、如果你的MySQL(和PHP搭配之最佳組合)用的是my.ini作配置文件,設(shè)置類似,但設(shè)置的格式要稍作變通。

 

【編輯推薦】

  1. 對MySQL 中文亂碼的解決方案的描述
  2. 查看MySQL連接數(shù)的實(shí)際操作流程
  3. MySQL數(shù)據(jù)庫在實(shí)際應(yīng)用一些方面的介紹
  4. MySQL數(shù)據(jù)庫日志的文件維護(hù)流程
  5. MySQL 5.1在Linux下的正確安裝
責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-03-17 09:28:22

接口VCMySQL

2010-05-13 13:49:09

MySQL數(shù)據(jù)庫

2010-06-07 16:22:55

MySQL數(shù)據(jù)庫

2010-05-20 15:22:37

2010-05-28 11:41:46

MySQL數(shù)據(jù)庫備份

2010-05-21 16:33:02

MySQL數(shù)據(jù)庫

2010-05-25 18:21:28

MySQL連接數(shù)據(jù)庫

2010-07-06 15:02:12

SQL Server

2010-05-12 15:41:21

MySQL數(shù)據(jù)庫

2010-05-19 17:35:35

2024-01-22 09:43:50

數(shù)據(jù)庫方案

2010-08-20 13:45:43

DB2數(shù)據(jù)庫

2010-06-11 13:13:38

訪問MySQL數(shù)據(jù)庫

2010-05-25 14:42:14

MySQL 數(shù)據(jù)庫

2010-05-06 15:44:08

Oracle Nvl函

2010-08-02 09:10:45

JDBC連接DB2

2010-04-13 12:23:34

Oracle數(shù)據(jù)庫

2010-06-17 10:02:12

SQL Server數(shù)

2010-04-21 14:11:56

Oracle數(shù)據(jù)庫

2010-03-30 11:15:26

Oracle數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號