Архив рубрики: Публикации

Повышаем производительность WordPress

Большинство исследований показывают, что пользователи очень нетерпеливы и покидают сайт, если он не загрузился за 4 секунды или даже меньше. Мы находимся в эпоху, когда все должно быть быстрым, и пользователи просто не хотят ждать загрузки страницы. Это особенно верно для пользователей мобильных устройств.

WordPress – отличная CMS, которая поможет вам легко создавать красивые веб-сайты или блоги без необходимости платить веб-разработчику. Проблема с WordPress в том, что она может стать очень медленной из-за многих факторов. Новая установка WordPress, использующая одну из тем по умолчанию и минимум плагинов, может очень быстро загружаться и получать хорошие оценки Google Speed и Yahoo! YSlow.

Это пример чистого блога, использующего тему по умолчанию.

Значение слева – это показатель Google Page Speed, а значение справа – показатель Yahoo! YSlow. Двойной A – зеленый 97% и 87%. Время загрузки страницы составляет 0,9 секунды. Если вы получаете высокие баллы, подобные этим, вы можете гордиться собой, и ваши посетители могут быть счастливы!

К сожалению, 99% времени мы используем разные причудливые темы, много изображений и виджетов, которые добавляют тяжелые коды в наших страницах, что значительно замедляет нашу установку WordPress. Существуют также настройки WordPress по умолчанию, которые не помогают сэкономить ресурсы сервера.

Экономия на стоимости хостинга

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

Медленная скорость загрузки страницы – признак того, что ваш блог использует слишком много ресурсов процессора и оперативной памяти вашего сервера.

Как увеличить скорость сайта WordPress

Для повышения скорости работы сайтов обычно выделяются три основные категории:

  1. Hardware
  2. Software
  3. Network

Мы сосредоточимся на программной части. Программное обеспечение включает в себя два основных аспекта: бэкэнд и Фронтэнд. Бэкэнд включает в себя оптимизацию баз данных и серверного код, такого как PHP и Java. Тем не менее, мы приложим максимум усилий для оптимизации внешнего интерфейса. Они включают в себя HTML, изображения, JavaScript и CSS-файлы и составляют 90% времени, необходимого для загрузки веб-сайта!


[bs_notification type=”danger” dismissible=”false”]Пожалуйста, создайте резервную копию WordPress перед началом процесса оптимизации. Это очень важно!!![/bs_notification]

Тест скорости WordPress

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

Бесплатные сервисы, описанные ниже, анализируют и тестируют вашу страницу (а не весь сайт) и представляют вам результаты тестирования. Я предпочитаю тестировать свои страницы, используя несколько разных сервисов, потому что каждый раз вы будете видеть разные результаты. Сложно определить среднее время загрузки с точностью, так как многие переменные могут изменять результаты испытаний каждый раз.

Neustar

  1. Зайдите на страницу http:// browsermob.com/ free-website-performance-test

  2. Введите ссылку на страницу которую вы хотите протестировать
  3. Run Instant Test
  4. Сохраните результат в PDF

GT Metrix

  1. Зайдите на страницу http://gtmetrix.com/
  2. Введите ссылку на страницу которую вы хотите протестировать
  3. Сохраните получившейся результат

Google Page Speed Online

 


Оптимизация картинок

Оптимизация изображения очень важна для ускорения вашего блога. Изображения в вашем блоге, могут быть слишком велики для настольных и мобильных устройств. Даже если вы тщательно сохранили свои изображения для Интернета с помощью Photoshop, Gimp, Acorn или другого графического программного обеспечения, вы будете удивлены, увидев, сколько килобайт вы все еще можете сохранить с помощью метода, который я собираюсь вам показать. Надеюсь, вам не придется оптимизировать каждое изображение отдельно. Это было бы огромной работой, особенно если у вас уже есть тысячи изображений в вашем блоге.

Вам нужно решение, которое может оптимизировать ваши существующие изображения в медиабиблиотеке, но также и любые новые изображения, которые вы загружаете автоматически. Решение заключается в использовании плагина под названием «EWWW Image Optimizer».

EWWW Image Optimizer

Есть несколько плагинов, которые делают то же самое, но EWWW один из лучших.

Преимущества использования EWWW Image Optimizer:

  • Ваши страницы будут загружаться быстрее, потому что меньший размер изображения означает более быструю загрузку страницы.

  • Вы можете оптимизировать сотни изображений всего за несколько минут.

  • Вы можете оптимизировать любое изображение в WordPress, включая те, которые не находятся в библиотеке медиафайлов, например, изображения темы.

По умолчанию EWWW Image Optimizer использует методы оптимизации без потерь, поэтому качество изображения будет точно таким же до и после оптимизации. Единственное, что изменится – это размер вашего файла.

Установка EWWW Image Optimizer

Установите плагин (Плагины -> Добавить новый)

Давайте посмотрим на «Базовые настройки».

Единственное, что вам нужно сделать, это проверить «Remove metadat» и ввести «Bulk Delay», которая будет работать на вашем сервере. Если ваш блог работает на Шаред хостинге, вы можете выбрать 5, 6 или 10 секунд. Если же ваш блог работает на VPS или выделенном сервере, паузы в 3 секунды должно быть достаточным.

Игнорируйте «Cloud Settings», «Advanced Settings» и «Conversion Settings», так как их настройки по умолчанию удовлетворят большинство пользователей.

Оптимизация изображений из медиабиблиотеки

Существует два способа оптимизации существующих изображений.

Первый способ. Перейдите в «Media Library» и оптимизируйте каждое изображение по одному. Нажмите «Библиотека». Обратите внимание: в «Медиабиблиотеку» добавлен новый раздел «Оптимизатор изображений». На снимке экрана выше показано, что исходные изображения не обрабатывались и указывают размер каждого изображения. Давайте нажимаем ссылку «Optimize now!» И посмотрим, что произойдет.

Как вы видите, изображения были уменьшены на 2,1%, что составляет экономию в 42,7 KB.

Другой способ оптимизации изображений из медиабиблиотеки – выбрать изображения, которые вы хотите, и выбрать опцию «Bulk Optimize» и нажать «Apply».

Массовая оптимизация изображений

В меню «Медиафайлы» выберите «Bulk Optimize».  Введите длительность паузы между обработкой изображений и нажмите «Start optimizing». Оптимизация начинается сразу. Каждое изображение, имеющееся в вашей медиабиблиотеке, имеет копии самого разного размера, и все они оптимизируются в случае необходимости.

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

  • Некоторые изображения уменьшены, а некоторые нет. Небольшие изображения в большинстве случаев не уменьшаются, потому что оптимизировать нечего.

  • Вы можете видеть ход оптимизации и можете остановить процесс в любое время, нажав кнопку «Stop Optimizing».

На той же странице «Bulk Optimize» найдите эту область и нажмите «Scan and optimize».

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

Будьте внимательны при добавлении слишком большого количества изображений

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

Всегда определять атрибуты widht и height изображений

Всякий раз, когда вы добавляете изображение используя HTML код, убедиться, что вы добавляете его атрибуты размера. Это повлияет на производительность.

Всегда показывать размер изображений

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

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

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

Используйте правильные форматы изображений

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

Лучшие форматы: PNG 8/24 бит, JPEG, GIF (когда изображение действительно мало). Иллюстрации и графика с меньшим количеством цветов отлично работают с PNG 8 бит. Фотографии и изображения, содержащие больше цветов, обычно должны быть сохранены в формате JPEG.

Есть программное обеспечение для оптимизации изображений.

 



2020-12-04T19:48:13
Без рубрики

Случайное число в Javascript

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

Метод random помогает в создании псевдослучайных чисел, так как, арифметически, создать истинное случайное число невозможно.

 

Синтаксис

Мы можем получить случайные числа с помощью функции Math.random(), например:

Math.random();

 

Эта функция не принимает никаких аргументов и возвращает случайное число с плавающей запятой от 0 до 1.

Если мы хотим генерировать случайные числа между любыми двумя числами или до предела. У них был бы другой синтаксис. Для лучшего понимания давайте попробуем пару примеров.

 

Примеры

Предположим, мы хотим сгенерировать случайное число от 0 до 99. Синтаксис для предоставления ограничения или диапазона:

Math.random() * 100

 

Имейте в виду, что 100 — это предел или диапазон, а не число.

 

Вы можете видеть, что он сгенерировал число от 0 до 99, но это число с плавающей запятой.

Итак, если мы хотим иметь целое число, а не число с плавающей запятой, мы можем применить метод Math.floor() к методу Math.random(), например:

Math.floor(Math.random() * 100)

 

Выглядит отлично!

Теперь, что, если мы хотим иметь числа не от 0 до 99 или более, а от какого-то другого числа, например, от 50 до 90. Сначала давайте посмотрим, как мы можем это сделать, а позже мы увидим, как это работает.

Math.floor((Math.random() * 40) + 50)

В этом синтаксисе 40 — это диапазон или ограничение от 50 до и далее, 50 — это начальное число.

 

В конце концов, если мы хотим создать нашу собственную случайную функцию, для которой мы можем предоставить два числа(минимальное и максимальное) и получить случайное число между этими двумя числами. Функция будет такой:

function getRandomNum(sNum, lNum) {

return Math.floor((Math.random * (lNum - sNum)) + sNum)

}

 

Имейте в виду, что конечное число или «lNum» будет исключено. Если вы хотите включить это, также добавьте «1» в диапазон, например:

function getRandomNum(sNum, lNum) {

return Math.floor((Math.random * (lNum - sNum + 1 )) + sNum)

}

После написания этой функции. Назовем его и посмотрим на результат.

getRandomNumber(20, 40);





 

Как видите, мы получаем случайные числа от 20 до 40.

Итак, это некоторые из различных способов генерации псевдослучайных чисел в Javascript с использованием метода Math.random().

 

Вывод

В этой статье мы научились получать случайные числа в Javascript и попробовали несколько методов, чтобы получить желаемые результаты. Мы также научились создавать пользовательские функции, в которых мы можем предоставить диапазон чисел и получить случайные числа между этими диапазонами.



2020-12-03T14:10:25
Программирование

Как отследить потерянный ПК или планшет с Windows 10

В ноябре прошлого года было выпущено первое крупное обновление Windows 10. Одним из его дополнительных преимуществ является функция устройства слежения. Теперь вы можете включить GPS-отслеживание, чтобы найти ноутбук или планшет с Windows 10.

Продавцы гаджетов, которые продают электронику, говорят, что эта функция аналогична встроенным приложениям для отслеживания устройств Apple и Android. Когда Microsoft впервые запустила Windows 10, функция устройства слежения была дополнена сторонним программным обеспечением Prey. Сегодня эта функция интегрирована для всех, у кого есть учетная запись Microsoft. По умолчанию эта функция отключена. Чтобы оно заработало, включите приложение до потери устройства.

Важно отметить, что этот новый трекер устройств с Windows 10 имеет свои ограничения. Он может только удаленно отслеживать местонахождение пропавшего ноутбука или планшета. В отличие от функции отслеживания устройств в iOS и Android OS, у нее по-прежнему нет возможности удаленно заблокировать или стереть устройство. Единственная важная информация, которую вы можете получить с помощью этой функции, — это местонахождение вашего пропавшего устройства.

Компания еще не подняла эту функцию на новый уровень, чтобы полностью конкурировать с функцией отслеживания устройств Apple и Android.

 

Как работает средство отслеживания устройств в Windows 10

Чтобы включить устройство слежения в Windows 10, необходимо:

  • Запустите стартовое меню/стартовый экран устройства.
  • Выберите «Настройки».
  • Перейдите к опции «Обновление и безопасность».
  • Нажмите «Найти мое устройство». Вы увидите сообщение, подтверждающее, что функция устройства слежения вашего устройства отключена.

Для включения приложения вам потребуется учетная запись Microsoft. Если вы потеряли планшет или ноутбук, войдите в свою учетную запись MS из веб-браузера, чтобы вы могли отслеживать местоположение вашего устройства. Также важно обновлять местоположение вашего устройства при обновлении, чтобы оно могло автоматически передавать свое местоположение в Microsoft.

Если у вас несколько гаджетов, важно переименовать каждое устройство. Ваш ноутбук или планшет появится в списке зарегистрированных гаджетов с таким же именем, установленным на вашем компьютере. Чтобы упростить отслеживание, измените названия своих гаджетов. Для этого просто:

  • Запустите опцию Настройки на вашем устройстве.
  • Коснитесь кнопки «Система».
  • Выберите вариант «О программе».
  • Нажмите «Переименовать компьютер».
  • Введите новое имя вашего устройства.

 

Как отследить потерянное устройство

Если ваш ноутбук или планшет отсутствует, отследите свое устройство, посетив  account.microsoft.com/devices. Введите ту же учетную запись MS, которую вы использовали при включении функции отслеживания устройства. Когда вы активируете поиск, отобразится список устройств, записанных под вашей учетной записью. Выберите пропавшее устройство и проверьте его последнее местоположение. В подсказке будет показано следующее сообщение: Последний раз видели в (время)

в городе). К этому сообщению прикреплена ссылка. Он содержит информацию (карту), необходимую для отслеживания пропавшего устройства. Функция «Найти мое устройство» в Windows 10 является свидетельством стремления компании сблизить Windows 10 для мобильных устройств и Windows 10 для компьютеров. Эксперты полагают, что Microsoft улучшит это приложение для отслеживания устройств, чтобы лучше обслуживать пользователей Windows.



2020-12-03T13:06:26
Microsoft

Как добавить аргументы командной строки в скрипт Python

Если вы разработали сценарий Python или приложение, предназначенное для запуска в основном в эмуляторах терминала или даже в приложениях с графическим интерфейсом пользователя, добавление аргументов командной строки может улучшить его удобство использования, читаемость кода, структуру приложения и общее удобство использования приложения для конечных пользователей. Эти аргументы командной строки также называются «параметрами» или «переключателями» и работают аналогично аргументам, которые вы обычно видите в сценариях bash и других программах на C/C ++.

Чтобы добавить аргументы в сценарии Python, вам нужно будет использовать встроенный модуль с именем «argparse». Как следует из названия, он анализирует аргументы командной строки, используемые при запуске скрипта или приложения Python. Эти проанализированные аргументы также проверяются модулем «argparse», чтобы убедиться, что они имеют правильный «тип». Ошибки возникают, если в аргументах есть недопустимые значения.

Использование модуля argparse можно лучше понять на примерах. Ниже приведены несколько примеров кода, которые помогут вам начать работу с модулем argparse.

 

Пример 1: Создание аргумента и сообщения справки

Рассмотрим пример кода ниже:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



args = parser.parse_args()

 

Первый оператор импортирует модуль «argparse». Затем создается новый экземпляр объекта «ArgumentParser», и в качестве аргумента предоставляется краткое описание программы. Объект ArgumentParser необходим для преобразования значений аргументов командной строки в типы данных, понятные Python. Это выполняется методом parse_args объекта ArgumentParser, как показано в последнем операторе.

Предполагая, что вы сохранили пример кода, указанный выше, в файле с именем «test.py», выполнение приведенных ниже команд приведет к появлению справочных сообщений, связанных с программой.

$ ./test.py -h



$ ./test.py --help

 

Вы должны получить примерно такой результат:

usage: test.py [-h]



A test program.



optional arguments:



-h, --help show this help message and exit




 

Обратите внимание, что в упомянутый выше пример кода не добавлена ​​логика для обработки проанализированных аргументов и преобразования их в объекты. Следовательно, справочные сообщения для отдельных аргументов в выводе не отображаются. Как только вы добавите логику для обработки значений анализируемых аргументов в вашу программу, в справочных сообщениях начнется отображение описания отдельных аргументов.

 

Пример 2: Обработка строкового аргумента

Чтобы добавить аргументы, приемлемые для вашего скрипта python, вам необходимо использовать метод «add_argument». Взгляните на следующий код:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("print_string", help="Prints the supplied argument.")



args = parser.parse_args()



print(args.print_string)

 

Был добавлен новый оператор, показывающий использование метода «add_argument». Любой аргумент, добавленный при запуске скрипта, будет обрабатываться ArgumentParser как объект «print_string».

Обратите внимание, что по умолчанию метод add_argument обрабатывает значения, полученные из аргументов, как строки, поэтому вам не нужно явно указывать «тип» в этом случае. Значение по умолчанию «Нет» также присваивается добавленным аргументам, если оно не отменено.

Еще раз взгляните на справочное сообщение:

usage: test.py [-h] [print_string]



A test program.



positional arguments:



print_string Prints the supplied argument.



optional arguments:



-h, --help show this help message and exit




 

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

Чтобы определить и проанализировать необязательные аргументы, вы можете использовать «-» (двойное тире) и изменить их значения по умолчанию, используя аргумент «default».

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("--print_string", help="Prints the supplied argument.", default=”A random string.”)



args = parser.parse_args()



print(args.print_string)

 

Теперь, когда вы запускаете скрипт test.py без аргументов, вы должны получить «случайную строку». как выход. Вы также можете дополнительно использовать ключевое слово «–print_string» для печати любой строки по вашему выбору.

$ ./test.py --print_string AndreyEx.ru

AndreyEx.ru

 

Обратите внимание, что вы можете сделать необязательный аргумент обязательным, используя дополнительный аргумент «required = True».

Наконец, вы также можете определить сокращенные версии аргумента, используя «-» (одиночное тире), чтобы уменьшить многословие.

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument(“-p”, "--print_string", help="Prints the supplied argument.", default=”A random string.”)



args = parser.parse_args()



print(args.print_string)

 

Выполнение следующей команды должно дать тот же результат, что и выше:

$ ./test.py -p AndreyEx.ru

Пример 3: Обработка целочисленного аргумента

Чтобы обрабатывать аргументы, которым требуются целочисленные значения, вам необходимо установить ключевое слово «type» на «int», чтобы разрешить проверку и выдавать ошибки в случае, если условие не выполняется.

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", type=int)



args = parser.parse_args()



print(args.print_string)

 

Попробуйте выполнить следующую команду:

$ ./test.py -p AndreyEx.ru

 

Вы должны получить такую ошибку:

usage: test.py [-h] [-p PRINT_STRING]



test.py: error: argument -p/--print_string: invalid int value: 'AndreyEx.ru'




 

Предоставление целочисленного значения даст вам правильный результат:

$ ./test.py -p 1000

1000

Пример 4: Обработка переключателей True и False

Вы можете передавать аргументы без каких-либо значений, чтобы рассматривать их как флаги True и False, используя аргумент «action».

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", action="store_true")



args = parser.parse_args()



print(args.print_string)

 

Выполните команду ниже, чтобы получить на выходе простое «Истина»:

$ ./test.py -p

 

Если вы запустите сценарий без аргумента «-p», вместо него будет присвоено значение «Ложь». Значение «store_true» ключевого слова «action» присваивает значение «True» переменной «print_string» всякий раз, когда аргумент «-p» явно указан, в противном случае переменной присваивается значение «False».

 

Пример 5. Обработка значений аргументов как списка

Если вы хотите получить сразу несколько значений и сохранить их в списке, вам необходимо указать ключевое слово nargs в следующем формате:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", nargs='*')



args = parser.parse_args()



print(args.print_string)

 

Выполните следующую команду, чтобы проверить приведенный выше код:

$ ./test.py -p “a” “b”

 

Вы должны получить примерно такой результат:

['a', 'b']

Вывод

Модуль «argparse» довольно обширен с множеством опций для настройки поведения приложений командной строки и анализа значений, вводимых пользователем. Эти примеры касаются только базового использования модуля «argparse». Для сложных и сложных приложений вам могут потребоваться разные реализации.



2020-12-03T12:55:23
Python

Сжатие, дефрагментация и оптимизация базы данных MariaDB/MySQL

В этой статье мы будем исследовать некоторые методы сжатия таблицы / базы данных и дефрагментации в MySQL / MariaDB, что поможет вам сэкономить место на диске , база данных расположена на.

Базы данных крупных проектов со временем безмерно разрастаются, и всегда возникает вопрос, что с ними делать. Есть несколько способов решить проблему. Вы можете уменьшить объем данных в базе данных, удалив старую информацию, разделив базу данных на более мелкие, увеличив размер диска на сервере или сжав / сжав таблицы.

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

Сжатие и оптимизация таблиц InnoDB

Файлы ibdata1 и ib_log

Большинство проектов с таблицами InnoDB имеют проблемы с большими файлами ibdata1 и ib_log. В большинстве случаев это связано с неправильной  конфигурацией MySQL/MariaDB или архитектурой БД. Вся информация из таблиц InnoDB хранится в файле ibdata1, пространство которого само не используется. Я предпочитаю хранить данные таблицы в отдельных  файлах ibd*. Для этого добавьте в my.cnf следующую строку:

innodb_file_per_table

или

innodb_file_per_table = 1

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

  1. Сделайте резервную копию всех баз данных на вашем сервере (кроме mysql и performance_schema). Вы можете получить дамп базы данных с помощью этой команды:

    # mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
  2. После создания резервной копии базы данных остановите сервер mysql/mariadb;
  3. Измените настройки в my.cfg;
  4. Удалите  файлы ibdata1  и  ib_log;
  5. Запустите демон mysql/mariadb;
  6. Восстановить все базы из резервной копии:

    # mysql -u [username] –p[password] [database_name] < [dump_file.sql]

После этого все таблицы InnoDB будут храниться в отдельных файлах, и ibdata1 перестанет экспоненциально расти.

Сжатие таблиц InnoDB

Вы можете сжимать таблицы с текстовыми данными / данными BLOB и экономить довольно много места на диске.

У меня есть база данных innodb_test, содержащая таблицы, которые потенциально могут быть сжаты, и поэтому я могу освободить место на диске. Прежде чем что-либо делать, я рекомендую сделать резервную копию всех баз данных. Подключитесь к серверу mysql:

# mysql -u root -p

Выберите нужную базу данных в консоли mysql:

# use innodb_test;

Чтобы отобразить список таблиц и их размеры, используйте следующий запрос:

SELECT table_name AS "Table",

ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size in (MB)"

FROM information_schema.TABLES

WHERE table_schema = "innodb_test"

ORDER BY (data_length + index_length) DESC;

Где innodb_test — имя вашей базы данных.

Некоторые таблицы могут быть сжаты. Возьмем для примера таблицу b_crm_event_relations. Запустите этот запрос:

mysql> ALTER TABLE b_crm_event_relations ROW_FORMAT=COMPRESSED;

После его запуска вы можете увидеть, что размер таблицы уменьшился с 26 МБ до 11 МБ из-за сжатия.

Сжимая таблицы, вы можете сэкономить много дискового пространства на вашем хосте. Однако при работе со сжатыми таблицами нагрузка на процессор возрастает. Используйте сжатие для таблиц db, если у вас нет проблем с ресурсами процессора, но есть проблема с дисковым пространством.

Сжатие таблиц MyISAM в MySQL / MariDB

Для сжатия  таблиц Myisam используйте специальный запрос в консоли сервера вместо консоли mysql. Чтобы сжать таблицу, запустите следующее:

# myisampack -b /var/lib/mysql/test/modx_session

Где /var/lib/mysql/test/modx_session — это путь к вашей таблице. К сожалению, у меня не было большой таблицы и пришлось сжимать маленькие, но результат все равно можно было увидеть (файл был сжат с 25 МБ до 18 МБ):

# du -sh modx_session.MYD

25M modx_session.MYD

# myisampack -b /var/lib/mysql/test/modx_session

Compressing /var/lib/mysql/test/modx_session.MYD: (4933 records)

— Calculating statistics

— Compressing file

29.84%

Remember to run myisamchk -rq on compressed tables

# du -sh modx_session.MYD

18M modx_session.MYD

Я использовал в команде ключ -b. Когда вы добавляете его, таблица создается перед сжатием и помечается меткой OLD:

# ls -la modx_session.OLD

-rw-r----- 1 mysql mysql 25550000 Dec 17 15:20 modx_session.OLD

# du -sh modx_session.OLD

25M modx_session.OLD

Оптимизация таблиц и баз данных в MySQL и MariaDB

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

Откройте консоль MySQL, выберите базу данных и выполните этот запрос:

select table_name, round(data_length/1024/1024) as data_length_mb,

round(data_free/1024/1024) as data_free_mb from 

information_schema.tables where round(data_free/1024/1024) > 50 order

by data_free_mb;

Таким образом, вы отобразите все таблицы с не менее 50 МБ неиспользуемого пространства:

+-------------------------------+----------------+--------------+

| TABLE_NAME | data_length_mb | data_free_mb |

+-------------------------------+----------------+--------------+

| b_disk_deleted_log_v2 | 402 | 64 |

| b_crm_timeline_bind | 827 | 150 |

| b_disk_object_path | 980 | 72 |

data_length_mb — общий размер стола

data_free_mb — неиспользуемое место в столе

Это таблицы, которые мы можем дефрагментировать. Проверьте, сколько места они занимают на диске:

# ls -lh /var/lib/mysql/innodb_test/ | grep b_

-rw-r ----- 1 mysql mysql 402M 17 октября, 12:12 b_disk_deleted_log_v2.MYD

-rw-r ----- 1 mysql mysql 828M 17 октября 13:23 b_crm_timeline_bind.MYD

-rw-r ----- 1 mysql mysql 981M 17 октября, 11:54 b_disk_object_path.MYD

Чтобы оптимизировать эти таблицы, выполните следующую команду в консоли mysql:

# OPTIMIZE TABLE b_disk_deleted_log_v2, b_disk_object_path, b_crm_timeline_bind;

После успешной дефрагментации вы увидите следующий результат:

+ ------------------------------- + ---------------- + -------------- +

| TABLE_NAME | data_length_mb | data_free_mb |

+ ------------------------------- + ---------------- + -------------- +

| b_disk_deleted_log_v2 | 74 | 0 |

| b_crm_timeline_bind | 115 | 0 |

| b_disk_object_path | 201 | 0 |

Как видите, data_free_mb теперь равно 0, а размер таблицы значительно уменьшился (в 3-4 раза).

Вы также можете запустить дефрагментацию, используя mysqlcheck в консоли сервера:

# mysqlcheck -o innodb_test b_workflow_file -u root -p innodb_test.b_workflow_file

Где innodb_test ваша база данных и b_workflow_file название таблицы.

Чтобы оптимизировать все таблицы в базе данных, запустите эту команду в консоли сервера:

# mysqlcheck -o innodb_test -u root -p

Где innodb_test — имя базы данных

Или запустите оптимизацию всех баз на сервере:

# mysqlcheck -o --all-databases -u root -p

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

# du -sh

2,5 г

# mysqlcheck -o innodb_test -u root -p

innodb_test.b_admin_notify

note : Table does not support optimize, doing recreate + analyze instead

status : OK

innodb_test.b_admin_notify_lang

note : Table does not support optimize, doing recreate + analyze instead

status : OK

innodb_test.b_adv_banner

note : Table does not support optimize, doing recreate + analyze instead

status : OK

# du -sh

1,7 г

Таким образом, чтобы сэкономить место на вашем сервере, вы можете время от времени оптимизировать и сжимать свои таблицы и базы данных MySQL/MariDB. Не забудьте создать резервную копию базы данных перед выполнением любой работы по оптимизации.



2020-12-03T10:40:23
Вопросы читателей

Запуск chkdsk в Windows 10

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

Запоминающие устройства — это обычно уязвимая область ПК по ряду причин. Если у вас есть механический привод в вашем ПК или ноутбуке, даже небольшой удар может вызвать проблемы. К счастью, в Windows есть инструмент для диагностики и обнаружения любых таких проблем до того, как они вызовут головную боль.

Инструмент «Проверить диск» существует в Windows с незапамятных времен и помог многим пользователям решить проблемы с дисками. В этой статье мы расскажем, как запустить утилиту проверки диска, также известную как CHKDSK в Windows 10.

Есть два способа сделать это:

  • Запуск CHKDSK через командную строку.
  • Запуск CHKDSK через проводник Windows.

Запуск CHKDSK через командную строку

Шаг 1.  Найдите cmd в поле поиска на панели инструментов.

Шаг 2.  Щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора».

Шаг 3.  Когда откроется командная строка, введите

chkdsk Y: /f /r /x

Здесь параметры:

  • Y:  буква вашего диска.
  • /f:  попытается исправить любые ошибки.
  • /r  ищет поврежденные сектора и пытается восстановить любую возможную информацию.
  • /x принудительно отключить том, который вы собираетесь проверить, до начала процесса.

Обратите внимание, что если вы проверяете  диск C:/, лучше всего добавить параметр Y. Это заставит команду сканировать диск при следующей перезагрузке.

Запуск CHKDSK через проводник Windows

Шаг 1. Зайдите в  Мой компьютер.

Шаг 2.  Щелкните правой кнопкой мыши диск, который вы хотите просканировать, и выберите «Свойства».

Шаг 3: перейдите на  вкладку Инструменты.

Шаг 4. В разделе «Проверка ошибок» нажмите «Проверить».

Шаг 5: Windows может показать вам сообщение о том, что вам не нужно проверять наличие ошибок. Просто нажмите «Сканировать диск»,  чтобы начать сканирование.

Вы можете продолжать использовать диск во время сканирования. Если будут обнаружены какие-либо ошибки, ваша файловая система будет исправлена ​​при следующей перезагрузке компьютера.

https://www.youtube.com/watch?v=lwWQlyRpIWw



2020-12-03T10:12:10
Вопросы читателей