![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.03.2018
Сообщений: 18
|
![]()
Основнок время при работе вебсайта это запрос к базе данный.
Бак работает жесткий диск: http://pc-information-guide.ru/zhest...utera-hdd.html Кратко: на общем валу насажено несколько дисков, магнитные дорожки, каждого находятся друг над другом и образуют так называемый цилиндр. Есть коромысло с несколькими магнитными головками, по одной на каждый диск. Коромысло движется, устанавливается на необходимый цилиндр и производит запись/чтение. Движется оно шустро, но конечно это занимает значительное по компьютерным понятиям время. Получается что когда коромыслр установлено на некоторый цилиндр оно может очень быстро считывать или записывать инфлрмацию. А вот если при выполнении sql запроса требуется обращение к таблицам находящимся на разных цилиндрах, то коромыслу приходится перемещаться и время выполнения запроса резко увеличивается, иногда становится неприемлимым. Например для профиля пользователя надо по имеющемуся ключам выбрать наименование страны, региона, города, улицы. Это потребует обращения к таблице с профилем и еще к четырем. Может быть катастрофа, если таблицы находятся на разных цилиндрах. Кеширование помогает но не всегда. Твердотельные диски не имеют этой проблемы. Здесь Вы можете ознакомиться с результатами испытаний и сравненее hdd с ssd https://m.geektimes.ru/post/276052/ Разница в скорости десятки раз А чтобы зло пресечь собрать бы hdd да сжечь! Но hdd память сильно дешевле, без них не обойтись. Так что проблему надо решать, основные методы: - оптимизировать расположение таблиц на диске. Для каждой реально работающей программы есть распределение вероятностей запросов. Можно оптимально расположить таблицы минимизируя среднее время доступа или максимальное время доступа. Это может сделать программист или же программа. Но я такой программы не смог найти. Кто знает подскажите, пожалуйста. - использовать два или больше дисков, также оптимизируя расположение таблиц. Например один из дисков может быть ssd и на нем расположить маленькие таблицы. - использовать оперативную память, она даже быстрее чем sdd, а уж если использовать кеш память то будет совсем быстро. Для этого годятся журналируемые хранилища например redis , memcached. Поскольку большинство сайтов работает на хостингах и виртуальных серверах без сисадмина, было бы полезно сделать журналируемое хранилмще не требующее устпновки, на базе cron. Беда в том что самая популярная субд mysql не позволяет размещать таблицы на разных дисках и тем более не использует журналируемые хранилише. Может быть есть расширения для mysql позволяющие делать это , но я таких найти не сумел. Кто знает подскажите, пожалуйста. Предлагаю основать open source проект и разработать систему для оптимизации дисковой памяти. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
главное средство для "ускорения" SQL это ИНДЕКСЫ.
УПОРЯДОЧЕННЫЙ список значений отдельных полей (тех по которым происходит частый поиск/фильтрация). так что для проверки данного поля не нужно даже полностью считывать ВЕСЬ такой набор.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.03.2018
Сообщений: 18
|
![]()
индексы помогают при больших таблицах. если у вас несколько маленьких таблиц
которые физически расположены на разных цилиндрах запрос будет выполняться долго. коромысло несколько раз переместится будет беда |
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
что за спам-бот везде свои бредовые идеи толкает.....
на втором форуме вижу |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
зачем Вы человека обижаете?!
Он же вразумительно отвечает на комментарии. что же касается его альтернативного взгляда - то это его личное дело. Да, я, например, тоже не согласен с его мнением. Ну и и пусть. А у него вот такое мнение. Поперёк всему. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 26.03.2018
Сообщений: 18
|
![]()
кстати на нескольких форумах началось вполне коструктивное обсуждение. к счастью не все дебилы начинающие орать даже не пытаясь разобраться. если есть разумные возражения буду рад выслушать. для того и запостил
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 05.09.2017
Сообщений: 157
|
![]()
Основные принципы ускорения работы вебсайта:
- вынос яваскриптов, CSS и картинок на CDN - кэширование страниц (включая поддержку заголовков Etag и Last-Modofied) - оптимизация запросов к БД (включая создание правильной структуры таблиц, выбор правильной БД - sql/nosql) - тюнинг веб-сервера под тяжело нагруженные проекты - правильный подбор языка для скриптов на сервере (Фэйсбук даже разрабатывал HipHop VM для трансляции PHP в С) - перенос части обработки данных на клиента Реализовывайте, или можете придумать что-либо своё. Но универсального решения - нет, и сделать один opensource проект на все случаи жизни не получится.
Безопасность с Content Security Policy
Последний раз редактировалось Ottava; 01.04.2018 в 02:40. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как ускорить работу праграммы | Maxym_Ko | Общие вопросы по Java, Java SE, Kotlin | 2 | 25.11.2017 16:04 |
Как ускорить работу приложения? | rownong | C# (си шарп) | 9 | 11.08.2017 10:03 |
Как ускорить работу exel | Fedis1 | Microsoft Office Excel | 2 | 17.04.2014 19:01 |
Как ускорить работу программы | SibBear | Общие вопросы Delphi | 7 | 27.03.2009 14:40 |
Как ускорить работу с сетевой БД | Ramires | БД в Delphi | 3 | 21.08.2008 12:16 |