[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нормализация базы данных, JOIN, SELECT
Страницы: 1, 2, 3, 4, 5, 6, 7
twin
MiksIr
Цитата
У меня правда серьезные опасения насчет вас. Я же попросил - расскажите, чем лучше MyISAM, кроме FTS.
Могу ответить тем же. У меня тоже есть опасения. Вы зачем так навязчиво просите меня рассказать то, чего я не утверждал? Почему вы решили, что я должен рассказывать чем лучше InnoDB кроме полнотекстового поиска, когда я с самого начала вам талдычу - на сегодняшний день это и есть главное преимущество. Я и поисковик на своём сайте в пример приводил, и позже несколько раз акцентировался. Вы уперлись в ворота, MyISAM плохо-оченьплохо. А то, чем лучше, мы просто исключим из беседы, как таковое (кроме FTS) и вроде как все верно. Вроде как нет этого, а значит и действительно плохо.

Цитата
Вместо того, что бы расписать сравнение первым и сделать вывод, вам больше нравится вставать в позу "ах какой вы максималист, а я вот какой разумный и сбалансированный".
Видите ли. У меня это давным-давно расписано. Но эта информация платная, мне нет смысла вываливать это сюда. Зачем рубить сук? Вот вынудили - показал. Но я ничего не имею против, когда информацию дает кто-то вроде вас. Только с одной оговоркой, делать это нужно понятно и доходчиво, а не так, что пришел, накидал умных фраз без объяснения причин, потешил ЧСВ и пошел дальше довольный. Пусть люди греют голову, это же полезно. Естественный отбор. Эдакий санитар леса.

Мне плевать на ваше ко мне отношение. Но если говоришь а, говори и б. По крайней мере я буду пытаться заставлять это делать. Хотя бы такими спорами.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
glock18
Цитата (MiksIr @ 16.09.2013 - 07:13)
Вот почему в мозгах людей, если целостность критична - значит финансовые транзакции сразу. Наверно тоже автор учился на MyISAM, а всякие ACID ему казались из мира больших людей?


Не, автор использует innodb, и учился на чистом sql изначально. myisam он не переваривает, но постарался не навязывать свое мнение всем wink.gif
glock18
Если серьезно, то целостность данных, конечно, важна во всем. Другое дело, что некоторые готовы мириться с записями-призраками и прочими следствованиями использования myisam. Их дело, не мне с ними работать
glock18
Цитата (Гость_user @ 16.09.2013 - 07:49)
Ну и, забыл, транзакции. Зачастую тоже очень удобно, если работа происходит с несколькими таблицами и чтобы вручную не откатывать действия, в случае неудачи одного из запросов, удобно использовать транзакции, не только с фин. операциями.

Все правильно говорите
bestxp
Цитата (Arh @ 13.09.2013 - 16:22)
А если брать конкретный пример?
Допустим вывод новостей (30 штук на страницу).
SELECT `id`,`title`,`value`,`user_id` FROM news


И тут приспичило выводить не id автора, а его имя и фамилию из таблицы с пользователями.

SELECT n.`id`,n.`title`,n.`value`,n.`user_id`,
u.`name`,u.`surname`
FROM news n
LEFT JOIN users u ON u.`id` = n.`user_id`

или ?
SELECT `id`,`title`,`value`,`user_id` FROM news

а потом в цикле
'SELECT `name`,`surname` FROM users WHERE `id` = '.(int)$row['user_id']

И потом в этом цикле ты порождаешь много запросов, прикинь 1000 записей вывести?

Тут скорее циклом собираешь pk , потом делаешь where primary_key in (pk_array)
и потом циклом соединяешь еще раз, это куда быстрее чем ты показал

Далее, вложенные запросы не нужно избегать, их нужно правильно готовить, отчасти вложенные запросы это часть оптимизации более сложных запросов


например select * from ( select id, name from very_bug_table order by name limit 100 ) as t left join some_bale on t.id = some_table.fk

это будет куда быстрее работать чем сначало приджойнить, а потом обрезать, так как данных будет куда больше обходиться
twin
MiksIr
Цитата
Вот ваш пост самый первый http://phpforum.ru/index.php?act=Print&cli...imin=16&limit=1
Сколько всего понаписано, вместо одной лаконичной фразы.

Ну лаконичная фраза была.
Вот тут.

А вот тут еще больше всего написано, как и обещал. Постарался объективно и неоднобоко. Кидайтесь тапками, это на пользу пойдет.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Гость_user
Изучаю информацию об отличиях innodb и myisam.
Наткнулся на такое: ROW_FORMAT.
Объясните, пожалуйста, в каких случаях использовать Fixed, а в каких Dynamic?
Гость_user
И второе. На хабрахабре прочитал:

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

А если в вашем супер пуер проекте и записывать надо данные много и читать быстро, то строите две таблицы одну InnoDB для записи, другую MyISAM для чтения и синхронизируете из InnoDB в MyISAM.


По поводу совмещения, как в последнем абзаце, меня такая мысль посещала. Вот только на этой самой синхронизации мысль и испарилась за незнанием. Каким образом возможна эта синхронизация?
twin
Формат строк, это способ хранения данных. Фиксированный тип немного быстрее и меньше подвержен казусам типа фрагментаци. Динмический занимает меньше места на диске.

Что касается хабра, все верно. Уже писали - для чтения лучше MyISAM - жрет меньше места и шустрее. Где есть модификация и целостность данных критична, там InnoDB.

А что касается дублирования - чушь помоему. Тут получается сложение не плюсов, а минусов.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Гость_user
Продолжу вопросы здесь задавать, чтобы не плодить темы.
По поводу индексов. Т.к. в таблицах почти всегда используется автоинкрементный первичный ключ, то можно ведь сказать, что таблица индексированная.
И поиск осуществляется быстро только по этим самым полям, которые имеют какой либо индекс?
T1grOK
да. Только учтите, что создав 10 различных индексов, все они задействованы в запросе не будут. Mysql проанализирует и построит план выполнения запроса, выбрав какой из индексов целесообразней всего задействовать.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Гость_user
При создании внешних ключей связи многие-ко-многим, один-ко-многим - это то, что должен держать в уме я или это выражается в каких-то настройках РСУБД (кроме использования соответствующего количества таблиц)?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.