0 оценок0% нашли этот документ полезным (0 голосов)
37 просмотров3 страницы
El documento habla sobre el manejo de transacciones en MySQL. Una transacción consiste en una o más sentencias SQL que se ejecutan de forma atómica. Por defecto, el complemento no considera las transacciones SQL. Para que el complemento pueda considerar transacciones, las extensiones de MySQL deben usar la función set_autocommit() de la biblioteca mysqlnd para controlar el modo autocommit. La opción trx_stickiness también permite al complemento considerar transacciones dirigiendo todas las sentencias al maestro hasta que se habilite el modo autocommit.
El documento habla sobre el manejo de transacciones en MySQL. Una transacción consiste en una o más sentencias SQL que se ejecutan de forma atómica. Por defecto, el complemento no considera las transacciones SQL. Para que el complemento pueda considerar transacciones, las extensiones de MySQL deben usar la función set_autocommit() de la biblioteca mysqlnd para controlar el modo autocommit. La opción trx_stickiness también permite al complemento considerar transacciones dirigiendo todas las sentencias al maestro hasta que se habilite el modo autocommit.
El documento habla sobre el manejo de transacciones en MySQL. Una transacción consiste en una o más sentencias SQL que se ejecutan de forma atómica. Por defecto, el complemento no considera las transacciones SQL. Para que el complemento pueda considerar transacciones, las extensiones de MySQL deben usar la función set_autocommit() de la biblioteca mysqlnd para controlar el modo autocommit. La opción trx_stickiness también permite al complemento considerar transacciones dirigiendo todas las sentencias al maestro hasta que se habilite el modo autocommit.
Es una unidad de trabajo que se ejecuta en un servidor de base de datos. La
unidad de trabajo consiste en una o ms sentencias SQL. De manera predeterminada, el complemento no considera las transacciones SQL. A cualquier tipo de equilibrador de carga de MySQL se le debe indicar un comienzo y el final de una transaccin. Esto se puede realizar implcitamente monitorizando las llamadas a la API o usando sugerencias SQL, al igual que cualquier otro equilibrador de carga de MySQL, no puede detectar los lmites de una transaccin basada en el Protocolo Cliente Servidor de MySQL. Por lo tanto, la consideracin del equilibrado de carga de transacciones totalmente transparente no es posible. Desde PHP 5.4.0, la biblioteca mysqlnd permite al complemento sobrescribir la llamada aset_autocommit() de la API en C de la biblioteca, para detectar el estado del modoautocommit. Las extensiones de MySQL para PHP emiten una consulta (como SET AUTOCOMMIT=0|1), o usan la llamada a la biblioteca mysqlnd set_autocommit() para controlar el ajusteautocommit. Si una extensin hace uso de set_autocommit(), el complemento puede considerar las transacciones. Hacer que el complemento considere transacciones no se puede realizar si se usa SQL para establecer el modo 'autocommit'. La funcinset_autocommit() de la biblioteca es invocada por las llamadas a la API demysqli_autocommit() y PDO::setAttribute(PDO::ATTR_AUTOCOMMIT). La opcin de configuracin del complemento trx_stickiness=master se puede usar para hacer que el complemento considere las transacciones. De este modo, el complemento detiene el equilibrado de cara si 'autocommit' se deshabilita, y dirige todas las sentencias al maestro hasta que 'autocommit' se habilite.
Nota: El uso de transacciones en php permite realizar operaciones completas
en la base de datos segn se requiera, veamos un ejemplo: Ejemplo: Transacciones bancarias. Una persona desea realizar una transferencia de X dinero de la Cuenta1 a la Cuenta2, para efectuar esta operacin sin problemas el sistema debe realizar dos operaciones en la base de datos del banco: la primera funcin deber sumar la cantidad X a la cantidad total que hay en la Cuenta2 y la segunda funcin deber restar la cantidad X de la cantidad total que hay en la Cuenta1.
El sistema deber realizar estas operaciones teniendo en cuenta que ambas
funciones se lleven a cabo, de lo contrario no hacer nada o borrar lo que ya se haba hecho. Pero qu pasa cuando el sistema falla antes de realizar la resta del dinero X en la Cuenta1? Tanto la Cuenta1 como la Cuenta2 tendrn X dinero de ms en su cuenta y por ende el banco tendr una prdida de X dinero. Por este motivo se utilizan las transacciones en PHP, el uso de transacciones permite realizar las dos operaciones completas en la base de datos o no realizar ninguna; en trminos ms tcnicos lo que se hace con las transacciones es realizar un ROLLBACK si alguna de las funciones no es realizada con xito y un COMMIT si ambas se realizan, de esta manera se asegura que la transaccin finalice correctamente con o sin la integridad de los datos.
OPTIMIZA Y TUNEA MY.CNF
(MYSQL) EN TU SERVIDOR VPS La memoria RAM es un factor clave en el servidor y determina la optimizacin de la base de datos, para poder optimizar, es principalmente el archivo my.cnf que se puede encontrar en /etc/mysql/my.cnf, antes de empezar se tendr que optimizar en funcin de la RAM que tengamos disponible. Ahora cules son las variables ms importantes? max_connections wait_timeout thread_cache_size table_cache key_buffer_size query_cache_size tmp_table_size
Afortunadamente hay varios programas que nos pueden ayudar a optimizar el
archive my.cnf y lo recomendable es usar los tres para comparar los resultados. MysqlTuner, Tining Primer, y MySQLreport. Se descargan estos programas en la carpeta /usr/local/sbin/ y se le daran permisos y nos preparamos para el despliegue de datos. *Tuning Primer ofrece los datos ms claros y los consejos ms especficos.
Configuracin para Optimizar
Mysql en Innodb. Se comienza por abrir el fichero de configuracin de mysql: 1
nano /etc/mysql/my.cnf
Entre los parmetros ms importantes en el caso de usar innodb est el
siguiente: innodb_buffer_pool_size Mnimo un 50% de la memoria ram, sobre un 70% 80% 1
innodb_buffer_pool_size=4G
query_cache_size La cantidad de memoria asignada para el almacenamiento
en cach de resultados de las consultas. Deben ser mltiplos de 1024. 1