您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關php mysql中并發的解決方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
php mysql并發解決的方法:1、一條SQL語句插入多條數據;2、修改插入語句為“INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)”。
在項目中,經常都會遇到高并發問題,如在某個時間點有100個人對同一數據進行更改,這樣就會產生問題,最后導致的數據會不準確,通常的解決高并發的方法有讀取數據時加緩存,寫入數據時添加到隊列,下面羅列一些處理高并發的常見方法供大家參考。
對于一些數據量較大的系統,數據庫面臨的問題除了查詢效率低下,還有就是數據入庫時間長。特別像報表系統,每天花費在數據導入上的時間可能會長達幾個小時或十幾個小時之久。因此,優化數據庫插入性能是很有意義的。
經過對MySQL innodb的一些性能測試,發現一些可以提高insert效率的方法,供大家參考參考。
1.一條SQL語句插入多條數據。
常用的插入語句如:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
修改后的插入操作能夠提高程序的插入效率。這里第二種SQL執行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事務讓日志)減少了,降低日志刷盤的數據量和頻率,從而提高效率。通過合并SQL語句,同時也能減少SQL語句解析的次數,減少網絡傳輸的IO。
這里提供一些測試對比數據,分別是進行單條數據的導入與轉化成一條SQL語句進行導入,分別測試1百、1千、1萬條數據記錄。
還可以在事務中進行插入處理。
感謝各位的閱讀!關于php mysql中并發的解決方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。