Ziptar, ну и для чего же тебе они нужны и большинству в мире? Для чего нужны CD и DVD ? Только пиратам на старых консолях, больше ни-ко-му ну и тем кто мрт делает
Ziptar, хоть порнолаб смотри, еще флешки нужны игровым приставкам. Если я запишу свои 250GB за 30 минут, а ты за 5 часов. Ну еще и сдохнет, покупай сразу пяток, у моей флешки DWPD равен трём.
Флешка нужна конечно если она стоит 100р чтобы отдать без возврата и не плакать.
Ziptar, блин ты реально въедливый, ферму строил на хардах и ssd так понятней? С человеком у которого 850 EVO работает хуже флешки мне обсуждать нечего.
ДА-ДА-ДА все именно так!!! дело только в скорости и качестве памяти - если тебя это не интересует пользуйся готовой флешкой.
Ziptar, майнинг при том, что был связан с hdd и ssd
Работает лучше, это ты уже свою практику экстраполируешь, просто даже башкой подумать и станет ясно, а переходник без корпуса стоит очень дешево, ломят цену именно за корпус.
Ziptar, когда майнингом занимался узнал как разводят с ssd дисками, но с тех пор уже прошло два года и ситуация еще хуже, в чем именно колхоз?
Переходник для того и сделан, чтобы воткнуть mini sata и любой nvme в usb - ты просто отстал от жизни это сейчас повсеместная практика.
А мое изобретение лишь в том, что я не захотел брать стремный корпус за 1000 рублей и купил проволоку за 100 рублей которая еще и идеально отводит тепло.
mysql> EXPLAIN SELECT * FROM (SELECT id, time, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY time DESC) AS n FROM sms WHERE time > NOW() - INTERVA
L 6 MONTH AND time < NOW() - INTERVAL 6 HOUR) t WHERE n<=4; SHOW WARNINGS;
+----+-------------+------------+----------------+------+---------------+------+---------+------+---------+----------+-----------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+------------+----------------+------+---------------+------+---------+------+---------+----------+-----------------------------+
| 1 | PRIMARY | | NULL | ALL | NULL | NULL | NULL | NULL | 3640708 | 33.33 | Using where |
| 2 | DERIVED | sms | d243,d244,d251 | ALL | time | NULL | NULL | NULL | 7281417 | 50.00 | Using where; Using filesort |
+----+-------------+------------+----------------+------+---------------+------+---------+------+---------+----------+-----------------------------+
2 rows in set, 2 warnings (0,01 sec)
+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Note | 3598 | To get information about window functions use EXPLAIN FORMAT=JSON |
| Note | 1003 | /* select#1 */ select `t`.`id` AS `id`,`t`.`time` AS `time`,`t`.`n` AS `n` from (/* select#2 */ select `main_files`.`sms`.`id` AS `id`,`main_files`.`sms`.`time` AS `time`,row_number() OVER (PARTITION BY `main_files`.`sms`.`phone` ORDER BY `main_files`.`sms`.`time` desc ) AS `n` from `main_files`.`sms` where ((`main_files`.`sms`.`time` > ((now() - interval 6 month))) and (`main_files`.`sms`.`time` < ((now() - interval 6 hour))))) `t` where (`t`.`n` <= 4) |
+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0,00 sec)
mysql> EXPLAIN SELECT * FROM (SELECT id, time, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY time DESC) AS n FROM sms WHERE time > NOW() - INTERVAL 6 MONTH AND time < NOW() - INTERVAL 6 HOUR) t WHERE n=4; SHOW WARNINGS;
+----+-------------+------------+----------------+------+---------------+-------------+---------+-------+---------+----------+-----------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+------------+----------------+------+---------------+-------------+---------+-------+---------+----------+-----------------------------+
| 1 | PRIMARY | | NULL | ref | | | 8 | const | 10 | 100.00 | NULL |
| 2 | DERIVED | sms | d243,d244,d251 | ALL | time | NULL | NULL | NULL | 7281417 | 50.00 | Using where; Using filesort |
+----+-------------+------------+----------------+------+---------------+-------------+---------+-------+---------+----------+-----------------------------+
2 rows in set, 2 warnings (0,00 sec)
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Note | 3598 | To get information about window functions use EXPLAIN FORMAT=JSON |
| Note | 1003 | /* select#1 */ select `t`.`id` AS `id`,`t`.`time` AS `time`,`t`.`n` AS `n` from (/* select#2 */ select `main_files`.`sms`.`id` AS `id`,`main_files`.`sms`.`time` AS `time`,row_number() OVER (PARTITION BY `main_files`.`sms`.`phone` ORDER BY `main_files`.`sms`.`time` desc ) AS `n` from `main_files`.`sms` where ((`main_files`.`sms`.`time` > ((now() - interval 6 month))) and (`main_files`.`sms`.`time` < ((now() - interval 6 hour))))) `t` where (`t`.`n` = 4) |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0,00 sec)
Ипатьев, он выделенный там 16 ядер и 32 виртуальных, я тестил как встают в очередь запросы. Не очень понятно, но ситуация такая если открывать вкладки в одном браузере запросы выстраиваются в очередь очень непонятно, кто именно их выстроил, пока руки не дошли проверить.
Если я открываю к примеру на пк 5 браузеров все запросы обрабатываются параллельно, я это отчетливо вижу в htop загружено 5 ядер из 32. Нагрузки не страшны, сервер пока мощнее требуемого во много раз, меня больше пугают блокировки, чтобы таблица нужная посетителям не заблокировалась надолго, чтобы все ядра любой софт использовал, коннекты там всякие были безлимита.
Вот как раз блокировки хуже нагрузки, я имею ввиду когда процессор не загружен, а таблица заблокировалась долгим запросом и остальные ждут, это сложная тема, но посетители сайта не используют все эти таблицы статистик, они нужны только админам. Самое главное посетители.
Комп и нужно грузить, зачем ему стоять без дела. Тут логика такая была, пусть грузится если справляется, но чтобы в будущем не было проблем, потому что база растет и растет. И в длину так сказать и в ширину.
Внимание на скорость было уделено запросам с сайтов от посетителей, но ни все простые select по id юзера, в админке не так страшно. А эти самые сложные запросы вообще для крона они выполняются ночью и даже не каждый день поэтому все равно.
vid(id) сам увидел в первый раз, уже удалил. Поле переименовал еще несколько месяцев назад, а индекс нет.
Ипатьев, я поэтому и не хочу их делать, раньше у меня две трети полей было заиндексировано. Но таблицы росли и росли, я решил оставить лишь время и айди юзера, потестил если всегда where вначале делать выборку по времени результат всегда приемлемый по скорости.