Сегодня я просматривал книгу по оптимизации SQL Server, и мне показалось, что определенное количество идей основано на линейной модели хранилища. Поскольку у твердотельных накопителей совершенно другая модель хранения, они каким-либо образом меняют игру в отношении того, как кто-то думает о настройке или оптимизации базы данных?
sql
database-design
optimization
ssd
FrustratedWithFormsDesigner
источник
источник
Ответы:
Да, они меняют игру. Оптимизация, основанная на характеристиках вращающихся магнитных дисков (таких как время поиска и задержка вращения ), может не иметь отношения к накопителям SSD. В недавней статье *, опубликованной в FITME 2010, представлен один новый алгоритм оптимизации запросов, основанный на характеристиках твердотельных накопителей.
Однако эти изменения, вероятно, будут низкоуровневыми (например, в алгоритмах хранения и поиска), которые могут быть эффективно реализованы разработчиками баз данных. Они, вероятно, не сильно повлияют на пользователей базы данных.
* IEEE Xplore - Оптимизация запросов хранилища на основе столбцов для флэш-баз данных
источник
Спектакль
Твердотельные накопители производительны: им не нужно искать, а пропускная способность нарастает. Большая часть программного обеспечения, работающего с дисками, в той степени, в которой они оптимизированы, оптимизирована для сокращения числа синхронных поисков. При этом они вводят множество сложностей. С появлением быстрых бесполезных записей в постоянное хранилище новые системы хранения данных больше не будут нуждаться в таких сложностях.
долговечность
SSD в настоящее время имеют высокую частоту отказов. Ваш SSD выйдет из строя. Ваши SSD будут выходить из строя с гораздо большей скоростью, чем магнитные диски. Вы должны обойти это с репликацией, резервным копированием и т. Д. Это создает свой собственный набор сложностей.
источник
Общее снижение цены на хранение имеет гораздо более глубокие последствия.
До того, как у нас был SQL, у нас были супероптимизированные иерархические и сетевые базы данных, где администраторам баз данных приходилось тщательно планировать отслеживание и размещение данных.
Базы данных SQL гораздо менее эффективны. Но теперь, когда диски дешевые, огромные и быстрые, нам все равно.
Базы данных NoSQL («Документ») могут быть несколько менее эффективными, чем SQL, потому что не существует такой же возможности логического-физического сопоставления между логической схемой SQL и базовой физической схемой файлов или табличных пространств или чем-то еще. И мы едва заботимся.
Улучшения производительности SSD, скорее всего, будут потеряны из-за изменений, вызванных использованием баз данных NoSQL, для общей архитектуры систем.
источник
Основная проблема с оптимизацией чего-либо для твердотельных накопителей связана с тем, как они записывают данные. Традиционный жесткий диск обычно хранит данные в небольших секторах размером около 512 байт и может фактически манипулировать секторами непосредственно на этом уровне или даже ниже этого уровня.
SSD имеют некоторые недостатки в отношении записи:
Типичный сценарий кошмара, называемый усилением записи , - это когда вы хотите записать один байт в место на диске, где уже используются некоторые блоки. Чтобы записать туда, вам нужно сначала скопировать всю страницу размером 256 КБ в память, стереть весь блок, изменить один байт на странице, а затем записать обратно всю измененную страницу размером 256 КБ. Таким образом, чтобы записать один байт, было около половины мегабайта «трафика»!
Существует множество оптимизаций для этой проблемы, реализованных на уровне SSD, контроллера и даже операционной системы, но, несомненно, СУБД могут выиграть, приспособив эти оптимизации к своей конкретной работе.
Однако это не то, о чем должны думать пользователи базы данных (например, при использовании базы данных в своем приложении), поскольку это будет сильно зависеть от решений по проектированию / реализации на уровне СУБД.
источник
Из того, что я почерпнул из блога ServerFault , серверы баз данных должны иметь крепкое оборудование. На сервере базы данных стековых сайтов обмена работают SSD (см. Http://blog.serverfault.com/post/our-storage-decision/ ), и я думаю, что оптимизация запросов все еще очень необходима. CPU и памяти будут затронуты запросами к базе данных, а также ввод - вывод.
Однако производительность базы данных во многом зависит от ввода-вывода, поэтому SSD наверняка поможет.
источник
Да, по причинам, которые все заявили.
Я слушал подкаст, в котором говорилось, что большие куски СУБД, такие как Oracle, SQL Server и т. Д., Начнут «отключаться», если они смогут правильно распределить данные. Определите, является ли это SSD-накопителем, и оптимизируйте соответствующим образом.
Существует много дополнительного кода, встроенного в кеширование и запись данных, который просто больше не требуется.
Еще интереснее RAMSAN и его варианты. В основном жесткий диск, состоящий из микросхем ОЗУ, со встроенным ИБП X часа и возможностью фоновой записи в долговременное хранилище жесткого диска.
источник