И вот здесь основные сомнения: сделать выборку из 15 000 строк быстрее, чем из 60 000 (и будет больше) с WHERE city='spb'. На старте хотелось бы сделать правильно, чтобы при последующем развитии не упереться и переписываться все заново.Современные бд вообще с такими объемами смешными справляются достаточно легко, скорость может проседать в районе миллиона записей (утрированно, но где-то близко к истине), и там уже надо думать как это хитро индексировать/шардировать или тюнить железо/софт (естественно и тестовая машина должна быть какой-то адекватной конфигурации). По этому такая экономия на спичках по итогу выйдет боком. Собственно вам ничего особенно не стоит создать фейкером 15/60К записей со связями и прогнать эксплэйн на запрос, посмотреть чего в индексах не хватает, как быстро идет выборка... И WHERE city='spb' скорее всего вам аукнется, нужно связывать со справочной таблицей городов и соединять по айди-сити_айди, или через пивот, если у товара может быть больше одного города.
Ребят вы знаете, в чем проблема, и куда копать....Нет конечно... Берете код, бьете на блоки, расставляете метки времени, отчет по затраченному времени пишете в лог. Проблемные места смотрите и решаете можете ли уменьшить время исполнения. Вангую что самые тормоза у вас будут на выборке из бд или на запросах к апи. В случае бд - вывести запрос и сделать explain. По результату уже можно будет что-то советовать. В случае тормозов с апи - тут уже ничего в плане оптимизации сильно не придумаешь, но в любом случае задачи лучше будет скинуть в очередь и уже оттуда они будут выполняться, пока не закончится список. Кроме того, выборка по одной записи из бд в цикле - классическая ошибка, нужно объединить все запросы в один через join или in(), а дальше работать с полученным массивом.
ini_set('error_reporting',E_ALL); ini_set('display_errors', 1);
нужно сделать передачу данных из формы на сайте напрямую в TXT файлПонадобится все же какой-то серверный код, который что-то будет делать на стороне сервера с пришедшими данными. Можно тот же жаваскрипт, если сервер поддерживает ноду.
и чтобы то что передалось с сайта в txt файл через к примеру час автоматически удалилосьАвтоматически это как? Любая "автоматически" работающая программа имеет какой-то код, определяющий что и когда делать. Вариантов что вы там задумали миллиард, как определитесь с конкретным стеком/алгоритмом - перейдете к этому вопросу.
Может уже существуют готовые решение такого ? Очень ищуНаверняка, чего только юные падаваны не пишут в порыве творческого припадка, просто большинство стесняется выкладывать такой откровенный бред, а кто не стесняется видимо еще не знает как выкладывать в общий доступ скрипты в 4 строчки. Так что пишите, выкладывайте, первым будете )
Как пекарю познать коленвал? Я пекарь по профессии, но к сожалению в моем селе нет автомастерской, а мне нужно заменить коленвал на Тойоте Тундра. Сам коленвал мне прислали, нужен примерный план действий по замене.
Заменить коленвал в двигателе автомобиля — задача непростая, особенно
для человека без опыта в механике. Однако с вниманием, терпением и пошаговым подходом это возможно.
Вот примерный план действий:
---
### **Подготовка**
1. **Инструменты и материалы:**
- Набор ключей и трещоток.
- Динамометрический ключ.
- Домкрат и стойки для подъема машины.
- Съемник для шкивов.
- Герметик для двигателя.
- Масло для двигателя и охлаждающая жидкость.
- Тряпки, емкости для слива жидкости.
- Руководство по ремонту для вашего двигателя (очень важно для точности).
2. **Создайте рабочее пространство:**
- Работайте на ровной поверхности с достаточным освещением.
- Обеспечьте стабильность автомобиля, установив его на стойки.
3. **Слейте жидкости:**
- Слейте масло и охлаждающую жидкость в заранее подготовленные емкости.
---
### **Снятие двигателя**
1. **Демонтаж вспомогательных элементов:**
- Снимите аккумулятор.
- Отсоедините радиатор и трубки охлаждения.
- Снимите все ремни привода и шкивы.
2. **Демонтаж двигателя:**
- Отсоедините все крепления двигателя (подушки двигателя, болты к трансмиссии и т.д.).
- Используйте подъемник двигателя (или лебедку), чтобы извлечь его из автомобиля.
---
### **Разборка двигателя**
1. **Снимите крышку картера:**
- Выкрутите болты и аккуратно снимите картер, соблюдая осторожность, чтобы не повредить прокладку.
2. **Снимите шатунно-поршневую группу:**
- Отметьте каждую деталь, чтобы установить их на место позже.
- Выкрутите болты шатунов, освободите поршни и выдавите их вверх через цилиндры.
3. **Снимите старый коленвал:**
- Открутите крышки коренных подшипников.
- Осторожно извлеките коленвал, записывая порядок установки крышек.
---
### **Установка нового коленвала**
1. **Очистите все поверхности:**
- Убедитесь, что поверхности чисты и обезжирены.
2. **Проверьте зазоры:**
- Сравните размеры нового коленвала и вкладышей с заводскими рекомендациями.
3. **Установите новый коленвал:**
- Уложите коленвал на место и закрепите крышки коренных подшипников в правильном порядке.
- Затяните болты с использованием динамометрического ключа по рекомендациям.
4. **Установите шатунно-поршневую группу:**
- Убедитесь, что поршни установлены правильно.
5. **Закройте картер:**
- Используйте новую прокладку и герметик.
---
### **Сборка и установка двигателя**
1. **Установите двигатель обратно:**
- Подключите все крепления, трубки и провода.
2. **Заполните жидкости:**
- Залейте свежее масло и охлаждающую жидкость.
3. **Проверьте:**
- Убедитесь, что все подключено и закреплено.
4. **Первый запуск:**
- Прокрутите двигатель без зажигания для циркуляции масла.
- Запустите двигатель и проверьте на утечки.
---
### **Рекомендации**
- Если у вас нет опыта работы с автомобилями, найдите онлайн-ресурсы
с пошаговыми видео (например, на YouTube).
- Всегда соблюдайте рекомендации по моменту затяжки болтов.
- Если что-то пойдет не так, обратитесь за помощью к опытному механику,
даже если это потребуется поездка в соседний город.
Если будут вопросы по конкретным шагам — пишите, я помогу!
Staff, Services и промежуточная таблица StaffServiceshttps://brainstation.io/learn/sql/naming-conventions , https://www.sqlshack.com/learn-sql-naming-conventions/
Насколько правильным и общепринятым является использование составных первичных ключей в таких случаях?В общем случае это неверный подход, отдельный id для каждой сущности, включая пивоты, является хорошим тоном.
Какие могут быть плюсы и минусы данного подхода?Да нет тут плюсов. Уникальность записи через 2 значения даже из приложения юзать неудобно, особенно когда работаешь с фреймворками, которые соблюдают какой-никакой конвеншн.
Есть ли альтернативы, которые стоит рассмотреть в подобных ситуациях?Нормальный первичный ключ через автоинкремент и уник на составной.
Как это влияет на производительность базы данных и целостность данных?Зависит. Если внешние ключи настроены правильно, то консистентность бд будет гарантироваться правилами ключей (в рамках их описания конечно), отсюда все вытекающие, которые сильно зависят от остального построения связей. Производительность будет сильно зависеть от конкретной насторйки бд, машины/образа, но в основном от количества записей, так то движку фиолетово какие индексы использовать, главное чтобы они были.
Какие best practices существуют для таких случаев?Собсно выше основное описал.
Буду рад услышать ваши мнения и советы!Велком.
Посоветуйте, как можно было бы максимально безболезненно восполнить утраченные знания, а также наверстать упущенные новшества в языке?
Сейчас хочу попробовать реализовать научный проект.Собсно практика - лучший учитель, садитесь и пишите. Если базу уже знаете реализация не станет проблемой. По ходу решения текущих задач проекта познакомитесь со всеми нужными изменениями и практиками, сегодня на любой чих есть дока, туториал, видео и чатжпт. Двух зайцев двумя плюсами, так сказать...
Мне нужна функция на php, которую можно вызывать и при загрузке страницы, и в том числе в фоновом режиме, которая заполняла бы поля на странице.Странице чего? Вашего сайта или чужого? И что значит "в фоновом режиме"?
Щелчок на кнопке - вызов php-функции - заполнение полей на странице без перезагрузки.Аякс. опять же, зависит от того чей сервер. Естественно на фронте код будет на яваскрипте, так что чистым пхп не обойдешься.
Возможно ли такое? (Пока на WordPress) Спасибо.Возможно, но есть условия. Часть из них перечислил выше, остальные зависят от ваших умений.
собираюсь сделать админ панель для интернет магазина.Зависит. Что вы там писали и какая у вас логика. Как универсальное решение может подойти Вояджер, он немного простоватый, но для несложной логики подойдет. В случае более-менее сложных связей писать бэк скорее всего придется самому. Как фронт популярным решением будет что-то типа LTE Admin.