Биллинговая система Nodeny
15 Мая 2024, 03:52:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 ... 6 7 [8] 9 10 11
  Печать  
Автор Тема: Анонимный svn репозитарий Nodeny plus  (Прочитано 42202 раз)
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #105 : 10 Декабря 2012, 17:37:44 »

судя по html, что выдало:
SELECT SQL_CALC_FOUND_ROWS p.*, u.fio, u.name FROM pays p LEFT JOIN users u ON p.mid = u.id WHERE 1  AND p.time >= '1347051600' AND p.category<>3 ORDER BY time DESC LIMIT 0,15

Строк: 15. Время выполнения sql: 5.1344 сек

теперь перестали отрабатываться javascript
еще не разбирался, пути проверил, с ними все ок.

Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #106 : 10 Декабря 2012, 17:38:37 »

и инфо выдает по платежу выдает:

$VAR1 = {'tm_end' => '1357635473','tm_start' => 1355043473,'cash' => 0};

$VAR1 = {'usr_grps' => ',4,9,13,12,','privil' => ',1,3,2,17,11,12, 13,27,30,31,50,51, 52,55,100,61,90,69, 70,71,72,73,74,75, 76,77,78,79,80,81, 94,95,','login' => 'login'};

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #107 : 10 Декабря 2012, 17:45:20 »

Строк: 15. Время выполнения sql: 5.1344 сек
ты на калькуляторе что ли запускаешь? у меня платежей поменьше, но выполняется сотые доли секунды. Конфигурая мускула не huge?  Оперативы скока?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #108 : 10 Декабря 2012, 18:00:57 »

1 гиг на ESXi
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #109 : 10 Декабря 2012, 18:06:47 »

1 гиг на ESXi
ну, блин, это же реально элементарный sql. Отсортировать  несколько десятков тысяч записей по индексу...

SELECT * FROM pays WHERE time > 1347051600 AND category<>3 ORDER BY time DESC LIMIT 1;
SELECT * FROM pays WHERE time > 1347051600 ORDER BY time DESC LIMIT 1;

сколько выполняются эти запросы?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #110 : 10 Декабря 2012, 18:09:55 »

Та гоневная у тебя конфигурация мускула. Вот, ради прикола посмотрел sql в нодени50:

SELECT SQL_CALC_FOUND_ROWS p.*,u.name,u.grp FROM pays p LEFT JOIN users u ON u.id=p.mid WHERE (u.grp IN (0,1,2,3,4) OR u.grp IS NULL) AND ((p.type=40 AND (p.reason='1' OR p.coment='1')) OR (p.admin_id=1 AND p.type=10)) AND p.time>1354309200 AND p.time<1356987600 ORDER BY p.time DESC LIMIT 0,40

тут гораздо худшие условия и никто не жалуется. Уверен, что запрос в NoDeny+  будет выполняться  менее секунды на нормально сконфигурированном мускуле
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #111 : 10 Декабря 2012, 19:57:45 »

1 гиг на ESXi
ну, блин, это же реально элементарный sql. Отсортировать  несколько десятков тысяч записей по индексу...

SELECT * FROM pays WHERE time > 1347051600 AND category<>3 ORDER BY time DESC LIMIT 1;
SELECT * FROM pays WHERE time > 1347051600 ORDER BY time DESC LIMIT 1;

сколько выполняются эти запросы?
0.01 sec и 0.00 sec

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #112 : 10 Декабря 2012, 21:33:29 »

SELECT SQL_CALC_FOUND_ROWS p.*, u.fio, u.name FROM pays p FORCE INDEX (time) LEFT JOIN users u ON p.mid = u.id WHERE 1 AND p.category<>3 ORDER BY time DESC LIMIT 0,15;

сколько времени?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #113 : 11 Декабря 2012, 00:31:18 »

15 rows in set (13.79 sec)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #114 : 11 Декабря 2012, 01:43:34 »

15 rows in set (13.79 sec)
создал тестовою таблицу с похожими на реальность данными - 250 тыс строк. Действительно запрос выполняется долго - примерно 1,5 сек.  Mysql  однозначно чудит. Придется убрать  JOIN и сделать 2 запроса. Сегодня сделаю
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #115 : 11 Декабря 2012, 12:54:37 »

Заапдейтся и скажи результат
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #116 : 11 Декабря 2012, 14:01:36 »

mysql> SELECT SQL_CALC_FOUND_ROWS p.*, u.fio, u.name FROM pays p FORCE INDEX (time) LEFT JOIN users u ON p.mid = u.id WHERE 1 AND p.category<>3 ORDER BY time DESC LIMIT 0,15;

15 rows in set (14.97 sec)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #117 : 11 Декабря 2012, 15:49:16 »

mysql> SELECT SQL_CALC_FOUND_ROWS p.*, u.fio, u.name FROM pays p FORCE INDEX (time) LEFT JOIN users u ON p.mid = u.id WHERE 1 AND p.category<>3 ORDER BY time DESC LIMIT 0,15;

15 rows in set (14.97 sec)
причем здесь это? Ты апдейтился? Без всякой консоли, сколько времени занимает отображение платежей судя по дебагу?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #118 : 11 Декабря 2012, 16:07:22 »

да, javascript кстати так и не работает )
надо будет разобраться в чем трабл

на все запросы
Elapsed time: 4.124116 sec
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #119 : 11 Декабря 2012, 16:24:52 »

Смари:

Код:
mysql> select count(*) from del2;
+----------+
| count(*) |
+----------+
|   292040 |
+----------+
1 row in set (0.08 sec)

mysql> select count(*),category from del2 group by category;
+----------+----------+
| count(*) | category |
+----------+----------+
|     9520 |        1 |
|     4120 |        2 |
|      200 |        3 |
|    22360 |       20 |
|     3160 |       50 |
|    40480 |       99 |
|    89760 |      100 |
...
...
|    37080 |      423 |
|    34240 |      444 |
+----------+----------+
30 rows in set (0.10 sec)

mysql> RESET QUERY CACHE;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT p.*, u.fio, u.name FROM pays p LEFT JOIN users u ON p.mid = u.id WHERE 1 AND p.time >= '1347138000' AND p.category<>3 ORDER BY time DESC LIMIT 0,15;
 
15 rows in set (0.00 sec)

Расшифровываю. 300 тысяч записей. По всем условиям стоят индексы. Выборка занимает ноль, точка, два нуля секунд!

mysql-server-5.5.28, занимает 637 Мб ОЗУ.

Записан
Страниц: 1 ... 6 7 [8] 9 10 11
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!