Sunteți pe pagina 1din 3

Manejo de trasacciones:

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

query_cache_size=256M

S-ar putea să vă placă și