При розробці складних проектів неминуче виникає необхідність використання бази даних, але на який з існуючих СУБД * зупинити свій вибір? Вибір не так вже й малий: mSQL, PostgreSQL, Oracle, MS SQL та інші, але практично будь прийнятний хостинг, який надає стандартні послуги, включає в них кілька баз даних MySQL. Підставою для цього служить ряд важливих причин, і однією з них є те, що MySQL є продуктом класу Open Source (відкриті вихідні тексти), який можна отримати безкоштовно (для платформи Windows є деякі застереження). Як правило, сервер і клієнт MySQL входять в будь-який дистрибутив операційних систем сімейства BSD (FreeBSD, NetBSD, OpenBSD) і Linux, які використовуються на більшості веб-серверів, але, при необхідності, останню версію MySQL для всіх підтримуваних систем (у тому числі і для Windows) також можна знайти на сайті компанії MySQL AB - розробників MySQL (www.mysql.com).

PHP + MySQL = скоростьДругая немаловажна причина популярності MySQL полягає в тому, що її творці із самого початку розробки цієї СУБД поставили під главу кута її швидкодію, пожертвувавши при цьому деякими зручностями для розробників. Зв'язка PHP + MySQL або Perl + MySQL забезпечують дуже високу швидкодію, якого дуже важко досягти іншими засобами. Дуже хороший зв'язок MySQL з PHP стала ще однією причиною популярності цієї СУБД. Підтримка MySQL входить в стандартну збірку PHP, і можна бути впевненим, що проблем звертання до сервера MySQL з PHP-скриптів не буде. Для забезпечення взаємодії PHP з іншими СУБД (PostgreSQL, Oracle і так далі) доводиться компілювати його самостійно з вихідних кодів з додатковими опціями. Таким чином, можна вважати, що дешевизна, легкодоступність, продуктивність і тісний взаємозв'язок з PHP і забезпечують таку популярність MySQL.

MySQL 3.23 - найпоширеніша версія Однак вважати MySQL ідеальної СУБД було б великою помилкою. Як відомо, наші достоїнства - продовження наших же недоліків, і висока швидкість роботи MySQL досягається за рахунок принесення в жертву зручності розробки, позбавляючи розробників багатьох інструментів і команд, звичних у інших СУБД. В MySQL ми не можемо користуватися вкладені підзапити, процедурами, тригерами, видами і, з деякими застереженнями, каскадними оновленнями. У версії 4.1 очікується додавання вкладених підзапитів, а у версії 5 - й інші додаткові засоби, але чи зможемо ми ними скористатися? На сайті компанії MySQL AB доступна версія 4.0, а більшість провайдерів надає нам можливість роботи з версією 3.23, тому використання нововведень буде найближчим часом під великим питанням, якщо ми хочемо, щоб наші скрипти продовжували працювати коректно при зміні провайдера.

Пам'ятайте про відмінності MySQL від інших СУБД Проте в керівництві MySQL, яке також можна знайти на сайті компанії MySQL AB, наведені рекомендації, використання яких допоможе звести незручності від браку інструментів до мінімуму, а в деяких випадках - навіть отримати з цього користь. Наприклад, там, де в інших СУБД спираються на концепцію транзакцій, яка забезпечує цілісність і узгодженість таблиць, фіксуючи тільки закінчені зміни, легко відкочуючись базу даних до останнього узгодженим станом в разі невдачі, в MySQL застосовується концепція "замикання" таблиці перед проведенням операцій, потенційно небезпечних для цілісності бази даних, не дозволяючи в цьому момент іншим з'єднанням змінювати і читати дані з цієї таблиці і ставлячи запити в чергу. Вкладені підзапити в більшості випадків можна переписати в один більш складний запит, отримуючи ще більшу швидкодію, або розбити їх на кілька, а адже в СУБД, де вкладені підзапити дозволені, програмісти іноді навіть не замислюються про можливість оптимізації вкладених позапросов. Крім цього, в MySQL є і альтернативні способи зберігання таблиць в базі даних (InnoDB), які не використовуються за замовчуванням, але тим не менш підтримують концепцію транзакцій, забезпечуючи звичні механізми відкату невдалих операцій і надаючи додаткові інструменти - наприклад, каскадні видалення і так далі, - правда, на шкоду того ж швидкодії бази даних.

В інших випадках творці MySQL прямо говорять, що в деяких ситуаціях краще використовувати інші СУБД, як, наприклад, при необхідності збереження та обробки географічної інформації, де перевагами буде володіти PostgeSQL, в якій є спеціалізовані поля для зберігання подібної інформації, і функції для їх обробки . Тому, якщо ваша інформація має дуже спеціалізований ухил і не зовсім добре описується в термінах чисел, рядків, дат, тексту, вимагаючи конструювання специфічних структур, то, можливо, слід звернути увагу на можливості інших СУБД. Але, в будь-якому випадку, для більшості веб-проектів можливостей MySQL більш ніж достатньо.

SQL - мова спілкування з базами даних Як і в більшості сучасних СУБД, для створення запитів серверу MySQL застосовується мова SQL * (Structured Query Language - мову структурувати запитів). Можна вважати, що в даний час SQL є стандартом роботи з базами даних. Але необхідно пам'ятати, що незважаючи на існуючі стандарти SQL, в різних СУБД його реалізації можуть відрізнятися, тобто існують так звані "діалекти" SQL. Мова запитів в MySQL дотримується стандарту ANSI SQL92, але включає в себе специфічні ключові слова, яких немає в цьому стандарті. Наприклад, практично у всіх таблицях буде присутній у стовпцях, що забезпечують унікальність записів, властивість "AUTO_INCREMENT", яке не зрозуміють інші СУБД, якщо ви спробуєте там виконати команди SQL, створені вами для MySQL. Якщо ви плануєте надалі перенесення ваших програм на інші СУБД, то слід приділити більше уваги цьому питанню сумісності діалектів, тим більше що MySQL дозволяє використовувати багато додаткові ключові слова в командах SQL в цілях сумісності, ігноруючи їх під час виконання. Розширення в майбутньому можливостей MySQL також пов'язано з переходом до іншого діалекту SQL, соответсвует стандарту ANSI SQL99, в якому реалізовано більше можливостей для СУБД.

У досвідчених руках MySQL забезпечить хорошу безпеку даними СУБД MySQL використовує традиційну архітектуру клієнт-сервер, і тому, працюючи з MySQL, ми насправді працюємо з двома програмами. Програма сервера бази даних розташована на комп'ютері, де зберігається база даних. Вона чекає запити клієнтів, що надходять по мережі, і забезпечує доступ до вмісту бази даних для добування інформації, запитуваної клієнтами. Клієнтська програма здійснює підключення до сервера і передає запити йому. У загальному випадку клієнт і сервер MySQL знаходяться на різних комп'ютерах, дозволяючи підключатися до сервера MySQL з будь-якого комп'ютера, що знаходиться в мережі. Але це зовсім не означає, що будь-яка людина може підключитися до вашої бази даних. В СУБД MySQL є власна система захисту, яка дозволяє налаштувати доступ до бази даних тільки тим, хто має на це право, а також розмежувати права доступу, дозволяючи лише ті операції, які необхідні даному користувачеві. Крім цього при розробці додатків веб-сервер, сервер MySQL, і ваші скрипти, які виступають в ролі клієнтів MySQL, знаходяться на одній машині, що дозволяє обмежити можливі з'єднання з сервером MySQL локальною машиною і дати доступ до бази даних тільки одному користувачеві, від імені якого ваші скрипти будуть з'єднуватися з сервером. Природно, в цьому випадку питання безпеки повинні враховуватися вже в ваших скриптах.

Посилання по темі

  • Сайт компанії MySQL AB

Статьяполучена: hostinfo.ru

Детальніше »