В този урок ще се спрем на създаване и използване на MERGE таблици в MySQL. Използването на такъв вид таблици може да ви помогне при работата с голям обем от данни, който искате да претърсите възможно най-бързо. В урока ще разгледаме един пример за таблици, който съдържат статистически данни, но първо да разгледаме предимствата на този вид конструкции.
Какво представляват MERGE таблиците?
MERGE таблицата е обединение на няколко еднакви по структура таблици. Ако имаме таблиците
A и
B, които имат еднаква структура, то тогава можем да създадем таблица
C със същата структура, която да обединява първите две таблици и съответно вие може да извършвате операциите
SELECT,
UPDATE и
DELETE върху таблицата
C, при което вие ще засягате редове от таблицата
A или
B, без да ви интересува в коя таблица точно се намира съответния ред.
Да разгледаме първо примерът и след това ще се спрем на особенностите на този вид таблици.
Ако предположим, че имате по 5 милиона импресии на година. Ако искате да запаметите всяка една импресия в една таблица
STATS, то тогава за 2004 и 2005 година вие ще имате общо 10 милиона реда. Ако вие постоянно използвате таблицата за да извеждате статистики от нея, то този обем на информация ще доведе до забавяне на вашите запитвания, защото каквото и да си говорим големият обем на информациня се претърсва по-бавно! Да предположим, че за вас са по-важни данните за 2005 година и заради тях вие правите редовни запитвания към таблицата от рода на:
CODE1
| SELECT COUNT(*) FROM STATS WHERE Views_date >= '2005-01-01 %' AND Javascript_enabled = 'Y' |
В такъв случай информацията за 2004 година ви пречи и забавя вашата функционалност! Дори и при създаден INDEX на полето
Views_date, идва момент, в който обемът на таблицата и неиният INDEX са прекалено големи и това ще започне да прави проблеми!