簡體   English   中英

mysqli_ *或mysql_ *性能?

[英]mysqli_* or mysql_* performance?

在php.net網站上,他們說那些在php5或更高版本旁邊使用mysql4.1的用戶必須使用極端的“ MYSQLI_”而不是“ MYSQL_”。

他只想知道一件事,它會影響站點的性能,由於數據庫(在任何服務器上都存在),站點的一些問題已關閉。

已經使用各種解決方案。 例如,緩存HTML頁面。

但是我的疑問確實是關於MYSQLI_ *,當我們使用它時,她連接到服務器和指定的數據庫。 根據php.net站點,是對mysql mysqli進行了改進和mysql4.1 +的優化。

我想知道大型MySQLi的流量是否能使站點性能更好。

PS .:考慮到PHP編程和MYSQL4.1 +的結構(具有新的列類型),我知道“ mysqli”和“ mysql”的區別。 我想知道的是多個連接。

這個問題是關於性能的,謝謝

您應該閱讀以下內容:

http://blog.secaserver.com/2011/07/php-driver-mysql-mysqli-pdo-mysql/

mysqli提供了更好的性能和增強的功能,並且正如Evert所說,如果使用mysqlnd則特別值得注意。

每當我們看到使用mysql_*函數的代碼時,在StackOveflow上的常見評論都應該回答您的問題:

請不要對新代碼使用mysql_ *函數。 它們已不再維護,社區已開始棄用過程 看到紅色框了嗎? 相反,您應該了解准備好的語句,並使用PDOMySQLi 如果您不能決定, 本文將有助於選擇。 如果您想學習,這里有個不錯的PDO教程

是的, MySQLi could give better performance to your site 您可以使用persistent connections ,它們基本上具有與眾所周知的connection pooling相同的思想,但是盡管connection pooling主要用於Java開發(通常由Web服務器直接執行,例如Apache-Tomcat ),但是持久性連接由MySQL and PHP管理MySQL and PHP

此外,MySQLi可以通過采用prepared statements來幫助您保護查詢。

Mysqli extension提供了內置的清理處理代碼,其中包括:

  • 回滾活動交易

  • 關閉准備好的語句(總是在PHP中發生)

  • 關閉和刪除臨時表

  • 解鎖表

  • 重置會話變量

  • 關閉處理程序

  • 使用GET_LOCK()獲得的釋放鎖

所有這些功能都可以幫助您提供更好的性能和安全性。

有關更多信息,您可以參考:

http://php.net/manual/en/mysqli.persistconns.php

不再維護和棄用mysql_函數。 mysqli_函數的性能會更好,特別是如果您使用mysqlnd(本機驅動程序)。

停止使用已棄用的API!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM