Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Насколько большой может быть база данных MySQL, прежде чем производительность начнет снижаться
В какой момент база данных MySQL начинает терять производительность?
- Имеет ли значение физический размер базы данных?
- Имеет ли значение количество записей?
- Является ли любое снижение производительности линейным или экспоненциальным?
У меня есть то, что я считаю большой базой данных, с примерно 15М записями, которые занимают почти 2 ГБ. Основываясь на этих цифрах, есть ли у меня стимул Очистить данные, или я могу позволить им продолжать масштабироваться еще несколько лет?
Физический размер базы данных не имеет значения. Количество записей не имеет значения.
По моему опыту, самая большая проблема, с которой вы столкнетесь, - это не размер, а количество запросов, которые вы можете обрабатывать одновременно. Скорее всего, вам придется перейти к конфигурации master/slave, чтобы запросы чтения могли работать против подчиненных устройств, а запросы записи-против ведущего устройства. Однако если вы еще не готовы к этому, вы всегда можете настроить индексы для выполняемых запросов, чтобы ускорить время отклика. Также есть много настроек, которые вы можете сделать для сетевого стека и kernel в Linux, что поможет.
У меня был мой получить до 10 ГБ, только с умеренным количеством соединений, и он обрабатывал запросы просто отлично.
Я бы сначала сосредоточился на ваших индексах, а затем попросил администратора сервера посмотреть на ваш OS, и если все это не поможет, возможно, пришло время реализовать конфигурацию master/slave.
В общем, это очень тонкий вопрос и совсем не тривиальный. Я рекомендую вам прочитать mysqlperformanceblog.com и высокая производительность MySQL . Я действительно думаю, что общего ответа на этот вопрос нет.
Я работаю над проектом, который имеет базу данных MySQL с почти 1 ТБ данных. Наиболее важным фактором масштабируемости является RAM. Если индексы ваших таблиц помещаются в память и ваши запросы сильно оптимизированы, вы можете обслуживать разумное количество запросов со средней машиной.
Количество записей действительно имеет значение, в зависимости от того, как выглядят ваши таблицы. Это разница, чтобы иметь много полей varchar или только пару интов или лонгов.
Физический размер базы данных также имеет значение: например, подумайте о резервных копиях. В зависимости от вашего движка, ваши физические файлы БД растут, но не сжимаются, например, с innodb. Так что удаление большого количества строк не поможет уменьшить ваши физические файлы.
В этом есть много проблем, и, как во многих случаях, дьявол кроется в деталях.
Размер базы данных имеет значение . Если у вас есть более одной таблицы с более чем миллионом записей, то производительность действительно начинает снижаться. Количество записей, конечно, влияет на производительность: MySQL может быть медленным с большими таблицами . Если вы попали в один миллион записей, вы получите проблемы с производительностью, если индексы не установлены правильно (например, нет индексов для полей в "WHERE statements" или "ON conditions" в соединениях). Если вы достигнете 10 миллионов рекордов, вы начнете получать проблемы с производительностью, даже если у вас есть все ваши индексы правильно. Аппаратные обновления-добавление большего объема памяти и мощности процессора, особенно памяти-часто помогают уменьшить наиболее серьезные проблемы, снова повышая производительность, по крайней мере до определенной степени. Например, 37 сигналов перешли от 32 ГБ RAM до 128 ГБ RAM для сервера баз данных Basecamp.
Я бы сначала сосредоточился на ваших индексах, а не на том, чтобы администратор сервера посмотрел на ваш OS, и если все это не поможет, возможно, пришло время для настройки master/slave.
Я бы сначала сосредоточился на ваших индексах, а не на том, чтобы администратор сервера посмотрел на ваш OS, и если все это не поможет, возможно, пришло время для настройки master/slave.
И это правда. Еще одна вещь, которая обычно работает, - это просто уменьшить количество данных, с которыми вы неоднократно работали. Если у вас есть "old data" и "new data" и 99% ваших запросов, работающих с новыми данными, просто переместите все старые данные в другую таблицу - и не смотрите на нее ;)
-> Взгляните на секционирование .
Бессмысленно говорить о том, что "database performance", "query performance"-это лучший термин здесь. И ответ таков: это зависит от запроса, данных, на которых он работает, индексов, оборудования и т. д. Вы можете получить представление о том, сколько строк будет сканироваться и какие индексы будут использоваться с синтаксисом EXPLAIN.
2 ГБ на самом деле не считается базой данных "large" - это скорее средний размер.
Однажды меня вызвали посмотреть на mysql, у которого было "stopped working". Я обнаружил, что файлы DB находятся на сетевом устройстве filer, смонтированном с NFS2 и с максимальным размером файла 2 ГБ. И действительно, таблица, которая перестала принимать транзакции, была ровно 2 ГБ на диске. Но что касается кривой производительности, то мне сказали, что она работала как чемпион до тех пор, пока не перестала работать вообще! Этот опыт всегда служит для меня приятным напоминанием о том, что всегда есть измерения выше и ниже того, что вы естественно подозреваете.
Вопрос, который следует учитывать, также является целью системы и данных в повседневной жизни.
Например, для системы с GPS мониторингом автомобилей не актуален запрос данных с позиций автомобиля в предыдущие месяцы.
Поэтому данные могут быть переданы в другие исторические таблицы для возможной консультации и сокращения времени выполнения повседневных запросов.
В настоящее время я управляю базой данных MySQL по инфраструктуре cloud Amazon, которая выросла до 160 GB. Производительность запросов в порядке. То, что стало кошмаром, - это резервное копирование, восстановление, добавление рабов или что-то еще, связанное со всем набором данных, или даже DDL на больших таблицах. Получение чистого импорта файла дампа стало проблематичным. Для того чтобы сделать процесс достаточно стабильным для автоматизации, необходимо было сделать различные варианты выбора для приоритета стабильности над производительностью. Если бы нам когда-нибудь пришлось восстанавливаться после катастрофы с помощью резервной копии SQL, мы были бы на дне в течение нескольких дней.
Горизонтальное масштабирование SQL также довольно болезненно и в большинстве случаев приводит к тому, что вы, вероятно, не собирались использовать его, когда решили поместить свои данные в SQL в первую очередь. Shards, read slaves, multi-master и т. д.-Все это действительно дерьмовые решения, которые добавляют сложности ко всему, что вы когда-либо делали с DB, и ни одно из них не решает проблему; только смягчает ее в некоторых отношениях. Я бы настоятельно рекомендовал посмотреть на перемещение некоторых ваших данных из MySQL (или действительно любого SQL), когда вы начинаете приближаться к набору данных такого размера, где эти типы вещей становятся проблемой.
Производительность может снизиться в течение нескольких тысяч строк, если база данных не разработана должным образом.
Если у вас есть правильные индексы, используйте правильные движки (не используйте MyISAM, где ожидается несколько DMLs), используйте секционирование, выделяйте правильную память в зависимости от использования и, конечно, имейте хорошую конфигурацию сервера, MySQL может обрабатывать данные даже в терабайтах!
Всегда есть способы повысить производительность базы данных.
Это зависит от вашего запроса и проверки.
Например, я работал с таблицей из 100 000 препаратов, которая имеет столбец generic name, где он имеет более 15 символов для каждого препарата в этой таблице. Я поставил запрос на сравнение общего названия лекарств между двумя таблицами. Выполнение запроса занимает больше минут. То же самое,если вы сравниваете лекарства с помощью индекса лекарств, используя столбец id (как было сказано выше), это занимает всего несколько секунд.
Размер базы данных DOES имеет значение с точки зрения количества байтов и строк таблицы. Вы заметите огромную разницу в производительности между легкой базой данных и заполненной большим двоичным объектом. Однажды мое приложение застряло, потому что я поместил двоичные изображения в поля вместо того, чтобы хранить изображения в файлах на диске и помещать только имена файлов в базу данных. С другой стороны, повторение большого количества строк не является бесплатным.