Max Eastlyaev
Max Eastlyaev
Ну например хост уже отменен
Max Eastlyaev
Например, обе версии параллельно не нужны, так как Яндекс научился правильно обрабатывать редиректы
Anonymous
я нуб с сео
Wɹ. ᴚoqᴉu Hoop
Я тоже
Anonymous
Wɹ. ᴚoqᴉu Hoop
Ага
NaVi
Анвар
Анвар
Екатерина
😂
Роман
#Вопрос: Есть огромный интернет-магазин.
Чтобы оптимизировать затраты хотя бы на первых порах хочу написать N материалов (чистая информационка, но которая может сконвертить в клиента или наоборот помочь покупателям) типа "как выбрать", "нюансы", "сравнение" и т.д.
Далее на листингах выводить сквозными блоками:
- Отзывы
- Название статей (ссылкой)
- Краткое описание статей
- Инфа о доставке
- Преимущества магазина
Соответственно все ключи размазать по этим сквозным блокам. Анонсов статей выводить 3-5 штук. Соответственно под каждую группу товаров будет свой набор таких анонсов (если повезет еще и отзывов). Блоки с доставкой и преимуществами будут сквозными, но офорленными в виде маленьких блоков с текстами.
Никто не подскажет по профиту в сравнении с постраничной оптимизацией? Т.е. когда каждую страницу обрабатываешь вручную и соответственно все инфо-блоки будут хотя бы подогнаны под страницу.
Dmitry
Vladimir
а есть какой-нибудь хороший чат программистов?
интересует вопрос как из SQL сделать NoSQL и стоит ли оно того :))
Winston
Anton
Anton
sql это язык, nosql это общее название хранилищ, которые не sql
Vladimir
что значит из sql сделать nosql?
Хочу написать простенькое приложение под Андроид.
Главный запрос, который там будет использоваться выглядит примерно так:
SELECT id, value FROM table WHERE id NOT IN (100 - 200 разных id) ORDER BY RAND() LIMIT 1
Данных немного. 20 - 50 тыс строк. Пишу только я. Приложение только читает.
В большинстве примеров используется Firebase или типа того. Но там нифига нет ни NOT IN, ни рандома. Все придется делать руками на клиенте через одно место. Зато Firebase нахаляву. :)
Либо идти через MySQL на каком-нибудь DigitalOcean (что вполне недорого) и позволяет использовать все плюшки SQL, но в нагрузку придется писать что-то клиент-серверное на PHP для обработки запросов, что довольно печально может отразиться на производительности...
Vladimir
то, что вместо ORDER BY RAND надо использовать JOIN - я знаю. но вышеприведенный пример нагляднее :)
Anton
JOIN вместо ORDER BY RAND?
Anton
бгг
Anton
а вы?
Anton
php+mysql будет довольно-таки быстро
Anton
50 тысяч записей это фигня
Vladimir
я ненастоящий пограмист, поэтому и задаю вопросы :))
Anton
ну это глупость, что вы сказали
Anton
про JOIN и ORDER BY. это совсем две разные вещи несвязанные
Anton
или я чего-то не знаю
Vladimir
хех :)
Vladimir
тестировал на таблице обычного ВП. Вот этот запрос исполняется за 0.0009 секунды. Тоже самое написанное через ORDER BY RAND - за 0.33
SELECT wp_postmeta.meta_id, wp_postmeta.meta_value FROM wp_postmeta JOIN ( SELECT RAND() * (SELECT MAX(meta_id) FROM wp_postmeta) AS max_id ) AS m WHERE wp_postmeta.meta_id >= m.max_id AND wp_postmeta.meta_id NOT IN (2, 78, 194, 123) ORDER BY wp_postmeta.meta_id ASC LIMIT 1
Vladimir
в таблице там 75 тыс строк
Anton
а, подзапрос
Vladimir
Собственно вопрос в том, как получить результат этого запроса (SELECT wp_postmeta.meta_id, wp_postmeta.meta_value FROM wp_postmeta JOIN ( SELECT RAND() * (SELECT MAX(meta_id) FROM wp_postmeta) AS max_id ) AS m WHERE wp_postmeta.meta_id >= m.max_id AND wp_postmeta.meta_id NOT IN (2, 78, 194, 123) ORDER BY wp_postmeta.meta_id ASC LIMIT 1)
если использовать не SQL, а NoSQL, а точнее Firebase от Гугла
Макс
Anton
ORDER BY RAND норм должен работать при запросе полей в индексе
Анвар
Брат
Anton
https://stackoverflow.com/questions/45145596/get-random-item-from-firebase
Анвар
Макс
Анвар
Anton
select id from table ORDER BY RAND() LIMIT 10
Anton
200k строк, время выполнения 108мсек
Анвар
Anton
это без кеша
Anton
сейчас на 50млн запущу
Анвар
это без кеша
А шо кеш надо закидывать чтобы раблтало?))
Anton
на 50млн без кеша за 15 сек
Vladimir
ну либо идти через 2 запроса. сначала id через RAND, потом сами данные по id
Anton
Anton
так то ясно, что это не production ready решение
Vladimir
так я выше написал как это обойти :)
Anton
но например может также сработать и select * from table WHERE id in (select id from table order by rand() limit 10)
Anton
ага
Anton
в firebase через limit, offset не очень решение, да
Anton
но для 50к должно достаточно неплохо работать
Vladimir
мне интереснее будет ли в таком случае связка PHP+MYSQL лучшем, чем Firebase
Анвар
Anton
надо посмотреть, кто может эффективно работать с random полями
Anton
из nosql
Anton
в mongo тоже как-то странно
Vladimir
если бы из приложения можно было работать сразу с MySQL, то вообще вопросов бы не было. но хранить пароль от БД на клиенте как-то не очень идея, даже от пользователя только с чтением
LZD
Неужто Пхп так долго рандомное число выдаёт?
Vladimir
ну NoSQL в большинстве случаев - это тупо JSON, а с сортировками там туговато :))
Anton
Anton
получили запрос - выплюнули ответ
Anton
да не, норм все в nosql с рандомом
Anton
но там бывают такие монстры, что у тебя это будет явный overhead
Vladimir
т.е. проще идти через родные PHP+MySQL?
Vladimir
т.е. для меня это точно проще :))
Anton
по крайней мере не запаришься это все поддерживать
Vladimir
вопрос медленнее или быстрее или пофигу
Anton
https://redis.io/commands/srandmember