Desde el último código fuente (no estoy seguro si es C o C++) de MySQL, ¿cómo funciona una autoincrementación? Quiero decir, ¿es eficiente porque se almacena como un recurso de metadatos en la mesa donde se dejó por última vez, o tiene que hacer un escaneo de tabla para encontrar el ID más grande en uso en la tabla? Además, ¿ves algún aspecto negativo del uso de la autoincrementación cuando observas cómo se implementa frente a, por ejemplo, PostgreSQL?MySQL, C++: mediante programación, ¿cómo funciona MySinc Autoincrement?
Respuesta
Eso dependerá de qué motor está utilizando la base de datos. InnoDB almacena el valor más grande en la memoria y no en el disco. Muy eficiente. Supongo que la mayoría de los motores harían algo similar, pero no pueden garantizarlo.
InnoDB's Auto Increment va a ejecutar la consulta a continuación una vez cuando se carga DB y almacenar la variable en la memoria:
SELECT MAX(ai_col) FROM t FOR UPDATE;
Comparando eso a PostgreSQL 's completa falta de un AUTO_INCREMENT depende de cómo se llevaría a cabo el campo tú mismo. (Al menos le faltaba la última vez que lo usé. Pueden haber cambiado) La mayoría crearía un SEQUENCE. Que parece estar almacenado en una pseudo-tabla en memoria. Yo tomaría InnoDBs para ser una mejor manera simple. Supongo que InnoDB sería más eficiente si no son iguales.
Está bien, entonces creo que lo leí con InnoDB, cuando se carga la base de datos, busca la última secuencia y luego la almacena en la memoria virtual como parte de los metadatos de la tabla. Gracias. – Volomike
- 1. mediante programación en C#
- 2. Cómo reiniciar mediante programación?
- 3. Cómo mostrar mediante programación WPF/C# Windows.Control.ToolTip?
- 4. MySQL: ¿Cómo determinar las relaciones de claves foráneas mediante programación?
- 5. Creación mediante programación de vistas en IOS (¿cómo funciona)?
- 6. Cómo ejecutar NUnit mediante programación
- 7. Cambio de colores mediante programación en C#
- 8. Cómo buscar mediante programación un documento PDF en C#
- 9. eliminar mediante programación un servicio usando C#
- 10. C# Visual Studio ... agregar referencias mediante programación
- 11. Cómo anotar campo de autoincrement de MYSQL con anotaciones JPA
- 12. Importación de un volcado de base de datos (mysql) mediante programación mediante Java
- 13. ¿Cómo elimino un dominio DNS mediante programación?
- 14. Cómo agregar un atributo mediante programación
- 15. Agregar PageControl mediante programación
- 16. Cómo descargar mediante programación un archivo grande en C#
- 17. ¿Cómo puedo crear una cadena en C# mediante programación?
- 18. ¿Cómo instalar un servicio de Windows mediante programación en C#?
- 19. Cómo llamar a drawRect mediante programación en el objetivo c
- 20. ¿Cómo establecer el tamaño NSView mediante programación?
- 21. ¿Cómo crear subdominios para IIS7 mediante programación?
- 22. Cómo desplazarse mediante programación un HorizontalScrollView
- 23. ¿Cómo obtener privilegios de root mediante programación?
- 24. ¿Cómo finalizo/reinicié un UIGestureRecognizer mediante programación?
- 25. Buscar mediante programación si bajo C++ o C++/CLI
- 26. Desconexión Jersey registro mediante programación
- 27. Magento, ¿cómo deshabilitar el módulo mediante programación?
- 28. Editando Web.config mediante programación
- 29. Generar propiedades mediante programación
- 30. Deshabilitar mediante programación window.location.reload?
¿Qué motor estás usando? (por ejemplo, InnoDB) –