回答
我寧願說比池等高效再利用的連接。以完美的MySQL的例子:
import MySQL
import PerfectThread
#if os(Linux)
import Glibc
#else
import Darwin
#endif
let mysql = MySQL()
let lock = Threading.Lock()
var jobs = 10
func now(_ id: Int) {
print("Job Now #", id)
lock.doWithLock {
let x = mysql.query(statement: "SELECT now() as time")
guard x, let y = mysql.storeResults(),
let row = y.next() else {
print(mysql.errorMessage())
return
}
print(row[0] ?? "Now() FAILED")
y.close()
jobs -= 1
}
}
func user(_ id: Int) {
print("Job Usr #", id)
lock.doWithLock {
let x = mysql.query(statement: "select User from user")
guard x, let y = mysql.storeResults(),
let row = y.next() else {
print(mysql.errorMessage())
return
}
print(row[0] ?? "User() FAILED")
y.close()
jobs -= 1
}
}
_ = mysql.setOption(.MYSQL_SET_CHARSET_NAME, "utf8mb4")
guard mysql.connect(host: "127.0.0.1", user: "root", password: "your pass", db: "mysql") else {
print(mysql.errorMessage())
exit(0)
}
jobs = 10
for id in 0 ..< 5 {
Threading.dispatch {
now(id)
}
Threading.dispatch {
user(id)
}
}
while jobs > 0 {
sleep(1)
}
通過使用Threading.Lock(),您可以輕鬆地排隊的所有查詢到一個連接,並最大限度地提高效率 - 快速,原子,有序,共享和單。
如果堅持,你可以創建一個有限數量的連接到一個數組,每個連接保持一個鎖來平衡,比如說一個線程連接池,所以我相信這個平衡的解決方案可以在沒有任何特殊模塊完美本身:
struct MySQLPool {
let mysql = MySQL()
let lock = Threading.Lock()
}
var pool: [MySQLPool] = []
for _ in 0 ..< 32 {
pool.append(YourNewConnection)
}
謝謝你的回答 –
Here是實現從MySQL數據庫中獲取的存儲庫,它返回使用完美的框架取結果JSON。請確保您根據數據庫設置更改database.swift文件中的數據庫配置和查詢。
感謝您的回答 –
歡迎您:) –
- 1. 數據庫連接池是否重要?
- 2. 是否有一個快速的SCNMaterials庫?
- 3. 選擇一個數據庫連接池
- 4. Java:JDBC數據庫連接池
- 5. 數據庫連接池
- 6. JBoss數據庫連接池
- 7. 快速測試n^2 +(n + 1)^ 2是否完美的方法
- 8. WCF數據庫連接:只有一個數據庫連接
- 9. 池:連接到數據庫的多個連接
- 10. 是否可以列出當前池中的所有數據庫連接?
- 11. 是否有任何理由使用ActiveRecord的數據庫連接池?
- 12. Standalone Axis2中的數據庫連接池?
- 13. Django的:池MySQL數據庫連接
- 14. 如何管理一個自定義的數據庫連接池
- 15. 爲什麼數據庫連接池比單個連接好?
- 16. 完美/ Swift mySQL你必須有一個單一的數據庫連接每個請求?
- 17. JMeter是否池HTTP連接?
- 18. Amazon S3是否有連接池?
- 19. webservice - http連接池是否有意義?
- 20. 用完數據庫連接!
- 21. 快速檢查數據庫中是否存在一組項目
- 22. SQL Server 2008的快速版本是否與完整版的數據庫兼容?
- 23. WCF服務的數據庫連接可以以最快的速度直接數據庫連接
- 24. 如何創建連接池/數據源而不是連接到SQL數據庫
- 25. 連接有一個遠程數據庫
- 26. 最佳數據庫連接池大小
- 27. 負載平衡數據庫連接池
- 28. SQL Server數據庫連接池?
- 29. 紅寶石數據庫連接池
- 30. .NET鏡像數據庫和連接池
我不明白降薪的目的,如果你不能回答,就放它一下 –