MyISAM для чтений данных

Вы не можете смешать VirtualHosts и non-VirtualHosts. Удалите DocumentRoot директива от Вашего основного Apache httpd конфигурация и добавляет значение по умолчанию VirtualHost блок вместо этого:

# Include the virtual host configurations:
Listen 80

# This is the other address
NameVirtualHost *:80

# This VirtualHost will also be served when no Host
# header was provided or the hostname is unknown.
# See
#  http://httpd.apache.org/docs/2.2/vhosts/details.html
<VirtualHost *:80>
  DocumentRoot /var/www
  ServerName giantpixels.com.au
  <Directory “/var/www”>
    allow from all
    Options +Indexes
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /home/gardenbook/wwwroot/gardenbook
  ServerName garden.giantpixels.com.au
  <Directory “/home/gardenbook/wwwroot/gardenbook”>
    allow from all
    Options +Indexes
  </Directory>
</VirtualHost>
10
задан 13 August 2012 в 09:45
5 ответов

Посетите этот сайт, он содержит очень полезную информацию:

http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/

Вы также можете настроить свою файловую систему. У меня хорошие результаты по производительности на XFS с оптимальными значениями sunit и swidth (конечно, если вы используете RAID)

1
ответ дан 2 December 2019 в 22:09

вам нужно «разогреться» innodb. например, путем повторного воспроизведения журналов доступа или выполнения некоторых интеллектуальных запросов, которые касаются каждого значения из индекса.

посмотрите здесь или здесь .

Надеюсь, вы не используете настройки mysql по умолчанию для innodb - они подходят для оборудования с ~ 2000 года.

2
ответ дан 2 December 2019 в 22:09

Перед тем, как выбрать MyISAM или InnoDB, вам нужно будет просмотреть оба механизма хранения с точки зрения того, что каждый кэширует

MyISAM

При чтении индексы таблицы MyISAM могут быть прочитаны один раз из файла .MYI и загружается в кэш ключей MyISAM (размер key_buffer_size ). Как сделать так, чтобы .MYD таблицы MyISAM читались быстрее? При этом:

ALTER TABLE mytable ROW_FORMAT=Fixed;

Я писал об этом в своих прошлых сообщениях

InnoDB

Хорошо, а как насчет InnoDB? Делает ли InnoDB дисковый ввод-вывод для запросов? Удивительно, но да !! Вы, наверное, думаете, что я сошел с ума, сказав это, но это абсолютно верно даже для запросов SELECT . В этот момент вы, вероятно, задаетесь вопросом: «Как вообще InnoDB выполняет дисковый ввод-вывод для запросов?»

Все восходит к тому, что InnoDB является механизмом транзакционного хранения ACID -жалобы. Чтобы InnoDB был транзакционным, он должен поддерживать I в ACID , что является изоляцией. Техника обеспечения изоляции транзакций осуществляется через MVCC, Multiversion Concurrency Control . Проще говоря, InnoDB записывает, как выглядят данные, прежде чем транзакции попытаются их изменить. Где это записывается? В файле системного табличного пространства, более известном как ibdata1. Это требует дискового ввода-вывода .

СРАВНЕНИЕ

Поскольку и InnoDB, и MyISAM выполняют дисковый ввод-вывод, какие случайные факторы определяют, кто будет быстрее?

  • Размер столбцов
  • Формат столбца
  • Наборы символов
  • Диапазон числовых значений (требуются достаточно большие INT)
  • Строки, разделяемые на блоки (цепочка строк)
  • Фрагментация данных, вызванная DELETE и UPDATE
  • Размер первичного ключа (InnoDB имеет кластерный индекс, требуются два ключевых поиска)
  • Размер записей индекса
  • список продолжается ...

ЭПИЛОГ

Таким образом, в среде с интенсивным чтением возможно для таблицы MyISAM с фиксированным форматом строк чтобы превзойти InnoDB при чтении из пула буферов InnoDB, если в журналы отмены, содержащиеся в ibdata1, записано достаточно данных для поддержки транзакционного поведения, наложенного на данные InnoDB. Тщательно спланируйте типы данных, запросы и механизм хранения. Когда объем данных будет расти, их будет очень сложно перемещать.

Кстати, 5 дней назад я написал что-то вроде этого: Как мне назначить ограничение памяти для mySQL?

6
ответ дан 2 December 2019 в 22:09

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

То, как вы настраиваете систему для двух движков, очень отличается.

Причина, по которой разные движки существует потому, что существуют разные рабочие нагрузки / шаблоны доступа.

3
ответ дан 2 December 2019 в 22:09

После дальнейшей настройки InnoDB на MariaDB, я увеличил innodb_buffer_pool_size до размера моей базы данных InnoDB, так как при этом InnoDB начал получать строки быстрее

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

0
ответ дан 2 December 2019 в 22:09

Теги

Похожие вопросы