Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос экспертам по БД (транзакции в MySQL)
 
 автор: elena   (17.07.2004 в 21:35)
 
 

Дорогие коллеги! У Вас замечательный ресурс, полностью располагающий к доверию. Особенно приятно, что этот прекрасный программисткий ресурс - нижегородский (в том смысле, что создатели - нижегородцы). В нашем городе, ИМХО, это единственный достойный программистский портал.
Я прошу у Вас экспертную оценку вот по вопросу связанному с БД (Я сама окончила наш ВМК, но все познания о БД остались в дебрях тамошнего курса, который, надо сказать, читался и читается в Университете отвратительно).
1. Насколько я слышала, в СУБД MySQL нет полноценной поддержки транзакций. Так ли это, или я ошибаюсь?
2. Дело в том, что у нас встала необходимость написания некоего ПО, ориентированного на финрасчеты. Классический пример на транзакции по этому поводу состоит в следующем (что осталось из университетского курса): Снимаем деньги с одного счета и переводим на другой. Если все рушится сразу после того, как мы сняли деньги, но еще не перевели на другой счет - деньги пропадают и т.д. Т.е. необходимо, чтобы эти две операции выполнялись в рамках одной транзации (вроде бы еще это называется атомарностью, но уже не помню :) ). /* Прочитала и подумала, что посчитаете меня выскочкой, вздумавшей учить профессионалов. Не подумайте так, я это написала просто, чтобы разнообразить тему - может кому то интересно будет прочитать :) */ И вот в чем вопрос: можно ли MySQL как СУБД использовать для этого дела? Мне самой кажется, что нет, но программисты уверяют, что можно. Очень хочу узнать ваше мнение.
3. Как Вы считаете, допустимо ли применять при разработке ПО для финрасчетов (или "складского" ПО), пусть и не очень сложных, MySQL?
4. Если есть серьезный "внутренний Интернет-магазин" (внутреннее ПО компании, взаимодействие нескольких десятком машин, завязанных в сеть), достаточно ли для программирования этого ПО связки PHP-MySQL? (Понимаю, что сумбурно, но больше сказать, увы, не могу). Я, к сожалению, сама с сетью никогда не работала, поэтому простите за наглость (столько вопросов!) - я просто обращаюсь к вам, как к известным экспертам в области сетевого программирования.

У меня есть еще вопрос, но его я вынесу в отдельную тему, так как поняла, что на этом форуме принято каждому вопросу свою тему, что очень правильно.
p.s. Если можно, ответьте поподробнее, просто нигду не могу найти действительно практически полезной информации. Извините за беспокойство.

   
 
 автор: cheops   (18.07.2004 в 00:02)   письмо автору
 
   для: elena   (17.07.2004 в 21:35)
 

Действительно, транзакции в MySQL появились лишь недавно. Дело в том, что "родные" таблицы ISAM, MyISAM и HEAP не поддерживают транзакции. Транзакции в MySQL появились лишь, с появлением сторонних таблиц BDB (Berkley DB) и InnoDB (компания Innobase Oy), в версиях 3.23.12 и 3.23.29, соответственно.
1) Наиболее продвинутой в плане транзакций, является таблица типа InnoDB, так как поддерживает блокирование на уровне строк (для сравнения, BDB - на уровне страниц). Кстати, InnoDB поддерживает внешние ключи и каскадное удаление (чего MySQL всегда не хватало).
Обратной стороной медали, является то, что чем лучше база данных поддерживает транзакции, тем медленнее она работает. Скорость работы падает в ряду MyISAM, BDB и InnoDB. Использовать MySQL для работы с транзакциями можно, особенно, если не требуется сильно большая скорость, которую, в общем, другая база тоже не даст... Кроме того, скоро выйдет 5 версия MySQL в которой, вероятно, будет реализованы дополнительные возможности…
2) Создание ПО с использованием MySQL вещь достаточно реальная, тем более что, MySQL поставляется с так называемой библиотекой встроенного сервера, позволяющей легко создавать автономное программное обеспеченье. Кстати, вы собираетесь продавать ПО? Дело в том, что при коммерческом использовании требуется покупка лицензии MySQL.
3) Да это вполне допустимо, и используется повсеместно… но следует помнить, что MySQL создавалась как быстрая база данных для работы с текстовой информацией. Не следует в неё засовывать документы Word и Excel, обычно, по достижении 10-15 Гб вся эта конструкция рушится, это всё-таки удел тяжеловесов, вроде MSSQL и Oracle.
4) Да этого достаточно, связки PHP-MySQL обслуживает многотысячные запросы (здесь скорее внимание следует уделять железу и администрированию серверов).

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования