Thứ Hai, 2 tháng 4, 2012

M?t s? d?c di?m c?a InnoDB v� MyISAM trong co s? d? li?u MySQL


-InnoDB h? tr? relationship (data integrity and foreign key constraints) c�n MyISAM th� ko: �a ph?n c�c open source d?u kh�ng coi tr?ng vi?c n�y nhung n?u ?ng d?ng c?a b?n b?t bu?c ph?i d�ng foreign key constraints th� InnoDB l� l?a ch?n c?a b?n.


- InnoDB h? tr? transactions c�n MyISAM th� kh�ng: N?u h? th?ng c?a b?n d�ng trong c�c ?ng d?ng ng�n h�ng ho?c ph?i th?c hi?n vi?c giao d?ch th� ch?c ch?n l� MyISAM s? b? lo?i.

+ Khi n�o c?n d�ng Transaction ?
Khi ta mu?n b?o d?m s? to�n v?n c?a d? li?u (kh�ng t?o ra c�c record m? c�i ho?c ch?a th�ng tin sai l?ch).

+ D�ngTransaction d? l�m g�?
�? d?m b?o s? to�n v?n c?a d? li?u.

+ L?i �ch c?a n� ?
L?i �ch l� d?m b?o s? to�n v?n c?a d? li?u.

V� d? nhu trong ng�n h�ng b?n c�n $150, b?n l�n internet, v�o 2 tragn wweb c�ng 1 l�c, mua 2 m�n h�ng c�ng l�c, m?t m�n tr? gi� $50 v� 1 m�n tr? gi� $20.
V?y, n?u d�ng th� t�i kho?n c?a b?n ph?i c�n l?i $150 - $50-$20 = $80.

Tuy nhi�n, th? tu?ng tu?ng nhu sau:
- �?u ti�n ng�n h�ng nh?n du?c y�u c?u mua h�ng t? trang web 1, n� d?c t�i kho?n c?a b?n ra gi� tr? $150.
- Ngay l�c d� ng�n h�ng cung nh?n du?c y�u c?u t? trang web 2, n� d?c t�i kho?n c?a b?n, ra gi� tr? $150.
- Sau d�, v? mua b�n th? nh?t k?t th�c, ng�n h�ng ghi l?i v�o t?i kho?n c?a b?n l� $150-$50 = $100
- L�c n�y v? mua b�n th? 2 k?t th�c v� ng�n h�ng ghi l?i v�o t?i kho?n c?a b?n $150-$20 = $130
=> v?y l� cu?i c�ng b?n c�n $130 (sai) thay v� $80 (d�ng).
Do v?y transaction du?c d�ng d? tr�nh nh?ng tru?ng h?p tuong t? nhu tr�n x?y ra.

- InnoDB thi�n v? row-level locking c�n MyISAM thi�n v? table locking: T?c l� khi h? th?ng c?a b?n ph?i th?c hi?n nhi?u c�c thao t�c insert/update th� InnoDB l� t?t hon, c�n n?u h? th?ng c?a b?n th?c hi?n c�c thao t�c select l� ch? y?u th� d�ng MyISAM l� l?u ch?n t?t hon.

- MyISAM h? tr? full-text searches c�n InnoDB th� kh�ng: ��y r� r�ng l� m?t di?m y?u c?a InnoDB so v?i MyISAM, v� di nhi�n l� trong h? th?ng c� d�ng full-text searches th� ph?i lo?i InnoDB d?u nu?c.

- T?c d? c?a MyISAM cao hon InnoDB: Khi h? th?ng c?a b?n d�i h?i performance cao th� MyISAM l� l?a ch?n t?t hon.

- Cu?i c�ng n?u b?n l� ngu?i m?i l�m v? MySQL (cung nhu DB n�i chung) th� b?n n�n d�ng MyISAM v� r?ng n� don gi?n hon InnoDB.