從MySQL的最新源代碼(不確定如果是C或C++),它是如何實現自動增量的?我的意思是,它是否有效,因爲它像元數據資源一樣存儲在最後一次停用的表上,還是需要執行表掃描才能找到表中最大的ID?另外,當你看看PostgreSQL如何實現時,你是否看到使用自動增量的負面影響?MySQL,C++ - 以編程方式,MySQL自動增量如何工作?
7
A
回答
2
這將取決於數據庫使用的是哪個引擎。 InnoDB正在存儲內存中的最大值,而不是磁盤上。非常有效。我想大多數引擎會做類似的事情,但不能保證。
InnoDB's Auto Increment是怎麼回事時,DB被加載運行一次下面的查詢和變量存儲在內存中:
SELECT MAX(ai_col) FROM t FOR UPDATE;
取決於你將如何實現字段相較於PostgreSQL的完全缺乏一個auto_increment的你自己。 (至少它上次缺少它,它們可能已經改變)大多數會創建一個SEQUENCE。這似乎存儲在內存僞表中。我會把InnoDBs變成更簡單更好的方法。如果不相等,我猜想InnoDB會更有效率。
+0
好吧,所以我想我已經閱讀了InnoDB,當數據庫加載時,它會尋找最後一個序列,然後將其緩存在虛擬內存中作爲表的元數據的一部分。謝謝。 – Volomike
相關問題
- 1. 以編程方式創建C#/ SQLCE TABLE(自動增量+主鍵)
- 2. 如何自動增加mysql編號
- 3. MySQL,C++:檢索自動增量ID
- 4. Mysql自動增量備選方案
- 5. 自動增量列的MySQL
- 6. MySQL:自動增量減1?
- 7. MYSQL自動增量範圍
- 8. MySQL自動增量白天?
- 9. MySQL觸發自動增量
- 10. 自動增量問題mysql
- 11. Mysql自動增量幫助
- 12. 以編程方式阻止UIImageView自動增量
- 13. Mysql自動增量增加2和1?
- 14. 如何以編程方式啓動Java中的Mysql服務器?
- 15. 以自動遞增6-8模式生成唯一編號mysql
- 16. 以編程方式增加音量
- 17. Liquibase不能與MySQL的自動增量工作
- 18. 如何在MySQL中將自動增量格式設置爲0001?
- 19. 如何在mySQL中使用自動遞增列工作
- 20. Mysql自動增量重置自己? xamp
- 21. 可以在mysql增量自動增加2嗎?
- 22. 以編程方式編輯DataGridView之後的C#更新MySql
- 23. 以編程方式監視MySQL? SNMP?
- 24. 以編程方式登錄到MySQL
- 25. MySQL的自動遞增問題編號
- 26. 如何以編程方式增加iPhone音量
- 27. 如何以編程方式製作此自動佈局?
- 28. mysql主鍵自動增量問題
- 29. MySQL的自動增量消失
- 30. MySQL自動增量字符字段
您正在使用哪種引擎? (例如InnoDB) –