Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Оптимизация БД
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 20 дней
Карма:




В общем есть бд
Версия MySQL: 10.1.10-MariaDB
Размер 1,2 гб.
В ней есть две основных таблицы в первой около 350 000 (520 мб) строк и куча столбцов.
Как мне кажется она и создает нагрузку.
Вторая около 2 500 000 строк (350 мб) и 4 столбца, но выборка из неё идет в основном по id.

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

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

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

Будут ли старые партиции удалены если из них удалить все записи.
Будут ли индексы также разделены по партициям.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 17 дней
Карма: 170




Цитата (Serg86 @ 20.02.2016 - 10:23)

Как мне кажется она и создает нагрузку.

Цитата (Serg86 @ 20.02.2016 - 10:23)

Я так думаю что изза кеширования.

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


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 20 дней
Карма:




Цитата

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

Подскажите как выяснить.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14966
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 27 дней
Карма: 443




Цитата (T1grOK @ 20.02.2016 - 11:11)
Чтобы не делать предположений, сначала выясните, на чем конкретно тормозит

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

Цитата (Serg86 @ 20.02.2016 - 11:56)
Подскажите как выяснить.

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

Это сообщение отредактировал sergeiss - 20.02.2016 - 12:05


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 20 дней
Карма:




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


Это я все знаю, есть небольшой процент запросов который выболняется 4-5 сек, не добрался до них пока. Но дело не в индексах как мне кажется, а именно в самой логике или в конфиге MySql.


Цитата
Как мне кажется она и создает нагрузку.

Наверно не достаточно подробно выразился. Создает нагрузку на процессор, сьедает около 70% восьмиядерного процессора.
При индексировании поисковыми машинами, количество запросов сильно возрастает и начинаются тормоза.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 17 дней
Карма: 170




Цитата (Serg86 @ 20.02.2016 - 08:12)
как мне кажется

dry.gif


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 3 дня
Карма: 147




Цитата
350 000 (520 мб) строк и куча столбцов

тут явно что "не красивое" smile.gif
может перепроектировать базу проще?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22689
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 599




Serg86
А точно индексы стоят? 5 секунд смахивает на поиск без индексов wink.gif


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 20 дней
Карма:




Цитата
А точно индексы стоят? 5 секунд смахивает на поиск без индексов wink.gif

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

Цитата
350 000 (520 мб) строк и куча столбцов

тут явно что "не красивое" smile.gif
может перепроектировать базу проще?

Куча это 36

Это сообщение отредактировал Serg86 - 20.02.2016 - 15:23
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22689
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 599




Serg86
У меня 100 столбцов и нормально, живём. Ты ищешь не там проблему. Проблема в отсутствии индексом.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
stump  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1067
Пользователь №: 40808
На форуме: 1 год, 10 месяцев, 12 дней
Карма: 14




Индексы это первое что надо сделать. Потом перепроектировать. Потом патиции.


--------------------
Трус не играет в хокей
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 20 дней
Карма:




Ок, за помощ всем спасибо, попробую для начала индексы до совершенства довести. Единственное чего пока для себя не понял это логика пртиций, смогу ли я по крону просто создавать новые партиции раз в месяц к примеру или раз в неделю и будут ли отваливаться старые при отсудствии записей в них, и как работает кеширование таблиц в оперативной памяти, будут ли кешироваться партиции отдельно? или вся таблица целиком будет опять бегать в оперативную память и скидываться при каждом изменении?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14966
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 27 дней
Карма: 443




Цитата (Serg86 @ 20.02.2016 - 22:21)
смогу ли я по крону просто создавать новые партиции раз в месяц к примеру или раз в неделю и будут ли отваливаться старые при отсудствии записей в них

Если ты собрался по крону создавать партиции, то забудь про это!!! И почитай про них, т.е. про партиции, более внимательно.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса