Медленный MySQL вставляет

Я столкнулся с той же проблемой на своем Dell XPS. В настоящее время нет никакого другого способа сохранить его согласно ключу яркости.

  • Первая попытка, выполняющаяся

    sudo su -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
    

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

  • Теперь редактирование /etc/rc.local файл для выполнения этой команды в загружаются.

    gksu gedit /etc/rc.local
    
  • Незадолго до exit в файле, добавьте следующую строку,

    echo 5 > /sys/class/backlight/acpi_video0/brightness
    

можно изменить значение 5 на что-либо.

7
задан jbatista 29 April 2011 в 13:47
поделиться

5 ответов

Возможно, настало время для горизонтального разделения и перемещения большого двоичного объекта в отдельную таблицу. В этой статье в «Кратком примечании по вертикальному разделению» автор удаляет из таблицы более крупное поле varchar, что примерно на порядок увеличивает скорость запроса.

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

Также (и вы, вероятно, уже делаете это) полезно уменьшить размер столбца индекса до его абсолютного минимума (char (32) в кодировке ascii для md5), поскольку размер ключа прямо пропорционален скорости его использования.

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

START TRANSACTION
INSERT INTO x (id, md5, field1, field2) values (1, '123dab...', 'data1','data2'),(2,'ab2...','data3','data4'),.....;
COMMIT
10
ответ дан 6 December 2019 в 10:52
поделиться

См. Скорость операторов INSERT . У вас часто бывают конфликты MD5? Я считаю, что это не должно происходить слишком часто, поэтому, возможно, вы можете использовать что-то вроде INSERT ... ON DUPLICATE для обработки столкновений. Если у вас есть определенные периоды вставки, вы можете отключить ключи на время вставки и восстановить их позже. Другой вариант - использовать репликацию ,

5
ответ дан 6 December 2019 в 10:52
поделиться

Умещаются ли ваши данные в ОЗУ? Если нет, увеличивайте объем ОЗУ, пока это не станет нерентабельным (для большинства людей обычно подходит 16 ГБ).

Затем, помещаются ли ваши индексы в буфер ключей MyISAM?

Если вы используете 32-битную ОС, не делайте этого. Если вы работаете в 64-битной ОС, установите буфер ключей примерно на 1/3 оперативной памяти. ОЗУ используется кешем ОС для кэширования файлов данных (что мало делает для вставок, но полезно для выборок).

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

Не переключайте движки MySQL без значительной проверки вашего приложения, это изменит поведение во многих отношениях (не только производительность). Это повлияет на использование дискового пространства.

1
ответ дан 6 December 2019 в 10:52
поделиться

Вы используете MyISAM?
AFAIK MyISAM имеет очень хорошую производительность чтения, но плохую производительность записи.

InnoDB следует сбалансировать по скорости.

1
ответ дан 6 December 2019 в 10:52
поделиться

Сегодня я тоже задал несколько связанный вопрос .

Один из предоставленных ответов - рассмотреть ВСТАВИТЬ ОТЛОЖЕННЫЙ , чтобы он переходит в очередь вставки и обрабатывается, когда база данных не так занята.

1
ответ дан 6 December 2019 в 10:52
поделиться
Другие вопросы по тегам:

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