Записи с меткой ‘mysql’
Соответствие MySQL и MongoDB запросов
Эта шпоргалка создана для того чтобы упростить переход с SQL баз данных на MongoDB. В ней остались не затронутыми многие особенности и возможности MongoDB, неимеющие аналогов в SQL, такие как MapReduce, например. Или те о которых я незнаю. Это просто список соответствий MySQL запросов и запросов MongoDb.
Чем отличается MyISAM от innoDB
Главное отличие: при записи в таблицу в innodb не блокируется вся таблица, а только именно та строка в которую идёт запись. Innodb увеличивает скорость если в таблицу постоянно идёт запись и вывод из неё. Но innodb работает медленнее если из таблицы идёт только постоянно вывод данных.
- Innodb восстанавливается от сбоя повторно запуская лог транзакций. Myisam должен сканировать и восстанавливать или перестраивать индексы или таблицы. которые были обновлены. но не сброшены на диск. У innodb восстановление занимает всегда одно и тоже время. У myisam это время растет с увеличением объема данных. Innodb более надежны при больших объемах данных.
- Myisam использует операционную систему для кэширования чтения и записи строк данных, тогда как innodb делает это самостоятельно. Измененные страницы базы данных сразу не передаются операционной системе, поэтому innodb дает прирост в скорости.
- В отличие от myisam, innodb не поддерживает сжатие таблиц.
- Innodb должен сбрасывать данные на диск хотя бы один раз за транзакцию.
- У innodb нет встроенного полнотекстового поиска.
Использование индексов в mySQL
Все индексы (PRIMARY, UNIQUE, KEY, INDEX и FULLTEXT) хранятся в B-дереве. В строковых типах автоматически происходит сжатие начальных и конечных пробелов.
Индексы используются для:
- Быстрого поиска записей по условию
WHERE; - Для объединения таблиц с посредством
JOIN. Необходимо использовать одинаковые типы сравниваемых полей. Если для сравнения необходимо произвести преобразование типов, то индексы использоваться не будут; - Для выбора наименьшего количества совпадений. Если есть множественный индекс, то использоваться будет тот индекс, который находит самое маленький число строк.
- Поиска
MAXиMINзначений для ключевых полей ; - Для сортировки и группировки таблиц (……
ORDER BYиGROUP BY); Для извлечения данных не из таблицы с данными, а из индексного файла. Это возможно только в некоторых случаях, например, когда все извлекаемые поля проиндексированы.
Хранение динамического набора атрибутов в базе данных
Периодически возникает потребность хранить динамические наборы определенных атрибутов для объектов. Например, в электронном магазине нужно хранить карточку товара, где набор атрибутов может быть разный для разных видов товара. Телефоны, например, имеют размер, вес, поддерживаемые стандарты связи, цветной/черно-белый дисплей; Книги – кол-во страниц, автор, издательство, isbn. Существует несколько способов хранить атрибуты, самые популярные: хранить товар и его атрибуты в общей таблице и шаблон EAV.

(15 голосов, средний: 4.73 из 5)