Назад | Перейти на главную страницу

Лучший движок Mysql DB при вставке запроса на удаление обновления не выполняется

Какой должен быть лучший движок Mysql db Когда такие запросы, как Update, Insert, Delete, почти не выполняются (99% времени не выполняются)

В базе данных есть запись о партиях, в основном числовой тип данных, запрос выбора основан на условном операторе, который сравнивает числовое значение и возвращает результаты

Следует ли мне использовать здесь MyISAM?

Еще одна вещь: база данных будет использоваться несколькими пользователями одновременно.

Спасибо

http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

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

Я бы предпочел MyISAM InnoDB по трем (3) основным причинам.

Причина №1: механизм хранения MyISAM предоставляет более простые механизмы для повышения производительности чтения.

Таблицы MyISAM состоят всего из трех файлов

  • .frm (файл формата)
  • .MYD (файл данных)
  • .MYI (индексный файл)

Вы можете настроить таблицы MyISAM для более быстрого чтения, просто изменив формат строки таблицы.

Например, страницы 71-73 книги Разработка и настройка базы данных MySQL рекомендует сделать это с таблицей MyISAM:

ALTER TABLE tblname ROW_FORMAT=Fixed;

Это преобразует все VARCHAR в CHAR внутренне. Это также сделает таблицу MyISAM примерно на 50% больше, но повысит производительность чтения, потому что длина строки более жестко проверяется с помощью VARCHAR, тогда как длина CHAR является фиксированной.

В качестве альтернативы вы можете запустить myisampack для таблицы MyISAM, чтобы уменьшить размер таблицы MyISAM и создать новый формат, доступный только для чтения.

Это одноразовые операции, которые вы можете выполнить с любой таблицей MyISAM. Изменение формата строки в таблице InnoDB в некоторой степени бесполезно из-за ее кластерного макета индекса (объяснено в Причине № 3)

Причина № 2: кэширование MyISAM проще

MyISAM кэширует только страницы индекса. InnoDB кэширует данные и индексные страницы. Таким образом, вы можете настроить кэш ключей MyISAM меньшего размера, чем пул буферов InnoDB.

Причина № 3: InnoDB несет слишком много багажа для защиты данных

InnoDB предлагает восстановление после сбоя при запуске, даже если все в порядке (меры предосторожности)

InnoDB всегда выполняет MVCC для строк данных. Это создает дополнительную уборку в доме, которая никогда не будет беспорядочной из-за INSERT, UPDATE или DELETE.

InnoDB все время выполняет двойной поиск по индексу, особенно при использовании индексов, отличных от UNIQUE. Причина, по которой это происходит, связана с Внутренний индекс rowid InnoDB, который тесно связан с кластеризованным индексом.

Вы можете обойти запуск InnoDB, указав следующее в /etc/my.cnf

[mysqld]
skip-innodb

Таким образом, MySQL перезапустится намного быстрее. Вы также можете удалить / var / lib / mysql / ibdata1, / var / lib / mysql / ib_logfile0 и / var / lib / mysql / ib_logfile1.

ПРЕДОСТЕРЕЖЕНИЕ

Если данных достаточно, смонтируйте / var / lib / mysql на RAM-диске. Тогда все ставки на сравнение MyISAM с InnoDB сняты.