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

Форум MySQL

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

 

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

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

тема: База данных для социальной сети - MyISAM или InnoDB?
 
 автор: ruslanaxti   (06.02.2011 в 22:59)   письмо автору
 
 

Какая структура базы данных больше подойдет для социальной сети? Таблицы с типом InnoDB или MyISAM. MyISAM насколько я знаю быстрее производит поиск и выборку. Но между таблицами необходима бывает взаимосвязь, установка внешних ключей, что MyISAM не поддерживает. Или это не принципиально?

  Ответить  
 
 автор: cheops   (06.02.2011 в 23:57)   письмо автору
 
   для: ruslanaxti   (06.02.2011 в 22:59)
 

Если ожидается хоть какое-то большое количество народу - лучше MyISAM, в конце концов работу внешних ключей можно эмулировать, да и не так часто они требуются по сравнению с обычными запросами на выборку.

  Ответить  
 
 автор: Nextia   (07.02.2011 в 08:18)   письмо автору
 
   для: ruslanaxti   (06.02.2011 в 22:59)
 

просто для себя сравните:
http://ru.wikipedia.org/wiki/InnoDB здесь InnoDB
http://ru.wikipedia.org/wiki/MyISAM MyISAM

легче и лучше работается с MyISAM.

в качестве отступления
Если планируете очень большой проект на собственном хостинге, то посмотрите в сторону Oracle.
просто под большой нагрузкой чувствует себя лучше, но и работается с ней "веселее"

  Ответить  
 
 автор: Саня   (07.02.2011 в 14:08)   письмо автору
 
   для: ruslanaxti   (06.02.2011 в 22:59)
 

Во время записи InnoDB использует блокирование на уровне строк, в то время как MyISAM блокирует всю таблицу. Поэтому использование InnoDB оправдано если ожидается много конкурирующих запросов на запись.

"Социальная сеть" — это слишком обширное описание возможных и планируемых нагрузок на базу данных. Эффективно проектировать базу можно только зная какие запросы будут к ней отправляться, с какой частотой и прочее.

Внешние зависимости можно поддерживать на уровне приложения, но это требует дополнительного кодирования. Вот я до сих пор избегаю внешних ключей на уровне базы данных просто потому, что привык все связи программировать явно на уровне приложения. Я не боюсь триггеров и хранимых процедур, но в production не рискую их использовать.

  Ответить  
 
 автор: neadekvat   (07.02.2011 в 14:26)   письмо автору
 
   для: Саня   (07.02.2011 в 14:08)
 

Как, по вашему, нормально ли использовать оба типа в одном проекте?
Например, для логов разнообразных действий использовать InnoDB, а для каких-нибудь заметок MyISAM?

  Ответить  
 
 автор: Саня   (07.02.2011 в 14:44)   письмо автору
 
   для: neadekvat   (07.02.2011 в 14:26)
 

Оба типа не имеет смысла использовать, так как сложно сконфигурировать сервер на эффективное использование и InnoDB, и MyISAM одновременно. Если выделить больше ресурсов на myisam, то innodb будет "страдать" и наоборот. Использовать разные движки стоит только если один движок работает на всю катушку, а другой используется очень редко, например только для сервисных нужд или для аггрегации некоторых выборок из основной базы.

  Ответить  
 
 автор: Nextia   (08.02.2011 в 02:33)   письмо автору
 
   для: Саня   (07.02.2011 в 14:44)
 

Есть такая книга
Разработка и проектирование социальных сетей на PHP5
Автор Майкл Пикок .
лежала http://mirknig.com/knigi/programming/1181343193-php-5-social-networking.html здесь. ,Может окажет консультативную помощь в разработке проекта. язык английский.

  Ответить  
 
 автор: Саня   (08.02.2011 в 11:20)   письмо автору
 
   для: Nextia   (08.02.2011 в 02:33)
 

Спасибо, но эта книга мне ни к чему.

  Ответить  
Rambler's Top100
вверх

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