Выборки без использования ключей

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Выборки без использования ключей

Re: Выборки без использования ключей

Сообщение Виталий » 2010-10-16 12:34:12

JBS-3 fixed.

Re: Выборки без использования ключей

Сообщение serge » 2010-10-12 8:01:07

lissyara писал(а):Век живи, век учись... Один фиг - дураком помрёшь =)
Хорошо Serge подсказал...

:oops:
Последнее время просто часто стали попадаться сервера с тяжелыми нагруженными БД. Поэтому с innodb приходится работать ну очень часто.

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-10-10 13:37:01

эм... в общем, я тоже Лохом оказался (с большой буквы =)))
у меня муся под MyISAM жёстко затюнена оказалась.
InnoDB ворочалась, бедная, на 100 метрах рамы, что ей по дефолту отдаётся, как могла.
отдали 2 гига из 12 что на машине есть - стало значительно лучше бегать и без тюнинга биллинга =))

Век живи, век учись... Один фиг - дураком помрёшь =)
Хорошо Serge подсказал...

Re: Выборки без использования ключей

Сообщение Виталий » 2010-10-10 2:14:00

Полезная оказалась таска... Проанализировал запросы, добавил ключей... Кроме этого еще добавил новый кеш и немного оптимизировал другие части работы с MySQL. Генерация страницы выдавала 3.5 сек. пару часов назад, сейчас уже 1.5 секунды :-) Оптимизировал получается поболе чем в 2 раза. Есть еще над чем поработать... ;)

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-10 13:48:35

Код: Выделить всё

mysql> SELECT COUNT(*) FROM Tasks;
+----------+
| COUNT(*) |
+----------+
|   145732 |
+----------+
1 row in set (1.46 sec)

mysql>     

может стоит её как-то чистить (не очень хорошая идея - мало ли чё понадобиться)
или разбивать по годам, например (более хорошая)

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-10 13:42:13

да, кстати, сабжевая выборка - 99% того что у меня в логе болтается...

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-08 17:23:00

есть.
могу вываливать сюда запросы котоыре нахожу, и предположения по тому куда именно надо прилепить ключи.
=========
но я не большой спец в MySQL и php - так, пописываю на досуге...

Re: Выборки без использования ключей

Сообщение Виталий » 2010-07-08 11:40:49

Сейчас рефакторю. Думаю по мускулу надо тоже по чуть-чуть подчищать. Нет желания помочь? ;)

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-08 11:19:04

а таких много....
которые без ключей.
на больших базах и когда много народу - это становится проблематично
2x2 Opteron c 12 гигами рамы - а ворочается, мягко скажем, нешустро...

Выборки без использования ключей

Сообщение Alex Keda » 2010-07-02 14:43:02

сабж вот нашёл... потому что долго делается.

Код: Выделить всё

mysql> use host-food_bill
Database changed
mysql> SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1;
+--------+
| ID     |
+--------+
| 147149 |
+--------+
1 row in set (3.38 sec)

mysql> explain SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1;
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows   | Extra                       |
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
|  1 | SIMPLE      | Tasks | ALL  | NULL          | NULL | NULL    | NULL | 166914 | Using where; Using filesort |
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
1 row in set (0.02 sec)

mysql>   

Вернуться к началу