Я не нашел там описания дополнительных модулей с которыми собирается nginx, по умолчанию в nginx он не собирается.
Вы уверены что там nginx собран с этим модулем?
Что то у меня тоже знакомая иногда так зарабатывает, даже две, у обоих есть основная работа, переводы в лучшее время даже пол зарплаты не покрывают, обе хорошо говорят на английском, одна уже живет в штатах она кстати топ1 по тесту английского языка на одеске.
DISTINCT для ipaddress очень легкий, я делал без его с count(id) запрос выполняется так же медленно 3-4 секунды, то есть оверхед дистинкта по айпиадресу совсем маленький на фоне where.
mysql> SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> WHERE cloaked = 0 and date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s');
+------------------+
| uniquenotcloaked |
+------------------+
| 574720 |
+------------------+
1 row in set (3.92 sec)
mysql> explain SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> WHERE cloaked = 0 and date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s');
+----+-------------+-------+------+---------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| 1 | SIMPLE | a | ref | Index_date_visited,Index_cloaked,date_server,date_server_cloak,cloak_date,cloak_server,date_cloak | Index_cloaked | 5 | const | 1606951 | Using where |
+----+-------------+-------+------+---------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
1 row in set (0.00 sec)
выполняется также медленно
SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> WHERE cloaked = 0 and date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s') AND a.server_id IN (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,28,30,32);
+------------------+
| uniquenotcloaked |
+------------------+
| 574720 |
+------------------+
1 row in set (3.95 sec)
1)С партицированием сейчас очень не просто, это сильно усложнит переделку всех запросов.
2)Айпи без разницы как хранить, я там делал count по id скорость работы точно такая же, так что скорее всего дистинкт довольно легкий.
3)Какой выигрыш от timestamp?
explain
-> SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> WHERE cloaked = 0 and date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s') AND a.server_id IN (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,28,30,32);
+----+-------------+-------+------+-----------------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+-----------------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| 1 | SIMPLE | a | ref | Index_date_visited,Index_cloaked,Index_8,date_server,date_server_cloak,cloak_date,cloak_server,date_cloak | Index_cloaked | 5 | const | 1606951 | Using where |
+----+-------------+-------+------+-----------------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
1 row in set (0.00 sec)
Понасоздавал индексов разных
explain SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> IGNORE INDEX ( Index_cloaked )
-> WHERE date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s') AND a.server_id IN (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,28,30,32) AND cloaked = 0;
+----+-------------+-------+------+---------------------------------------------------------------------------------------------+------------+---------+-------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------------------------------------------------------------------------------------+------------+---------+-------+---------+-------------+
| 1 | SIMPLE | a | ref | Index_date_visited,Index_8,date_server,date_server_cloak,cloak_date,cloak_server,date_cloak | cloak_date | 5 | const | 1683931 | Using where |
+----+-------------+-------+------+---------------------------------------------------------------------------------------------+------------+---------+-------+---------+-------------+
1 row in set (0.00 sec)
Второй индекс который ему нравится
explain SELECT
-> COUNT(DISTINCT(ipaddress)) as uniquenotcloaked
-> FROM accounts a
-> IGNORE INDEX ( cloak_date )
-> WHERE date_visited BETWEEN STR_TO_DATE('2013-05-01 00:00:01', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2013-07-18 23:59:59', '%Y-%m-%d %H:%i:%s') AND a.server_id IN (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,28,30,32) AND cloaked = 0;
+----+-------------+-------+------+------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
| 1 | SIMPLE | a | ref | Index_date_visited,Index_cloaked,Index_8,date_server,date_server_cloak,cloak_server,date_cloak | Index_cloaked | 5 | const | 1606951 | Using where |
+----+-------------+-------+------+------------------------------------------------------------------------------------------------+---------------+---------+-------+---------+-------------+
1 row in set (0.00 sec)
При это я так понимаю в обоих случаях индекс не используется, так как обычно в конце пишется using where; using index;
Как бы получить оплату по визе не так просто, и отвечать перед законом очень тоже не просто, попробуйте посидеть в обезьяннике 15 дней, а подумайте что в тюрьме творится.
В интернет магазинах используются длительные холды, если кидалово и обращение по нему, деньги вернут.