X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Оптимизация таблицы mysql и запросов к ней
abschaos
abschaos
Topic Starter сообщение 12.11.2010, 21:55; Ответить: abschaos
Сообщение #1


Здраствуйте.

Есть таблица:

CREATE TABLE `data` (
   `id` int(11) unsigned NOT NULL auto_increment,
   `uid` int(11) unsigned NOT NULL,
   `chr_string1` varchar(255) NOT NULL,
   `chr_string2` varchar(255) NOT NULL,
   `chr_string3` varchar(255) NOT NULL,
   `dec_value1` decimal(6,2) unsigned NOT NULL,
   `dec_value2` decimal(6,2) unsigned NOT NULL,
   `time` datetime NOT NULL,
   `boolen1` enum('0','1') NOT NULL default '1',
   PRIMARY KEY  (`id`),
   KEY `time` (`time`),
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;
в ней 100к записей.

И есть несколько запросов:

SELECT COUNT(*) as count, SUM(`dec_value1`) - SUM(`dec_value2`)   as  sum,  DATE_FORMAT(`time`, '%e.%m.%Y') as time from data where uid =  1   and  time BETWEEN STR_TO_DATE('$dstart', '%Y-%m-%d %H:%i:%s')  and    STR_TO_DATE('$dend', '%Y-%m-%d %H:%i:%s') and `boolen1` = '1' group by     DATE_FORMAT(`time`, '%e%m%Y') order by time+0
22 rows in set (0.79 sec)
explain:
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref    | rows  | Extra                                        |
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+
|  1 | SIMPLE      | data  | ALL  | time          | NULL | NULL    |   NULL | 96885 | Using where; Using temporary; Using filesort |
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+




SELECT `chr_string1`, `chr_string2`, `chr_string3`, COUNT(*) as    count, SUM(`dec_value1`) - SUM(`dec_value2`)  as sum FROM data where   uid  = 1 and `chr_string1` <> '' and time BETWEEN     STR_TO_DATE('$dstart', '%Y-%m-%d %H:%i:%s') and  STR_TO_DATE('$dend',    '%Y-%m-%d %H:%i:%s') and `boolen1` = '1' group by CONCAT(`chr_string1`,    `chr_string2`, `chr_string3`) order by `chr_string1`, `chr_string2`,    `chr_string3`+0 DESC
419 rows in set (0.93 sec)
explain:
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref    | rows  | Extra                                        |
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+
|  1 | SIMPLE      | data  | ALL  | time          | NULL | NULL    |   NULL | 96885 | Using where; Using temporary; Using filesort |
+----+-------------+-------+------+---------------+------+---------+------+-------+----------------------------------------------+
В дальнейшем размер базы увеличится до порядка 1м записей.

Hard:

CPU: 2x xeon 3.0Ghz (двухядерных)
RAM: 2x 1Gb Kingston
HDD: Seagate 750Gb (sata)

Soft:

OS: CentOs 5.5
MySql: 5.0.91

Вопросы:

  1. Нормальное ли это время для запросов?
  2. Как правильно расставить индексы в данной таблице?
  3. Как стоит перестроить запросы для лучшей производительности?
  4. Где можно почитать толковые статьи по оптимизации (ссылки на печатные варианты приветствуются).

Заранее спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
varvashenia
varvashenia
сообщение 24.11.2010, 15:12; Ответить: varvashenia
Сообщение #2


Начните с простановки индексов на все поля, участвующие в where и order

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Оптимизация сайтов, продвижение, наращивание ссылок
Большой опыт работы, отзывы
304 tario777 203575 13.3.2024, 14:01
автор: tario777
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВерстка/Натяжка/Оптимизация/Увеличение функционала шаблонов на WP
Разработка на профессиональном уровне
144 Gerga 92183 11.3.2024, 19:59
автор: anchous
Открытая тема (нет новых ответов) Есть ли инструмент для поиска запросов на YouTube?
1 rownong27 1005 18.2.2024, 22:19
автор: malamut
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1246 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Оптимизация сайтов, продвижение, наращивание ссылок. Большой опыт работы
2 BurzhuyXXi 1990 25.2.2023, 14:37
автор: BurzhuyXXi


 



RSS Текстовая версия Сейчас: 25.4.2024, 21:06
Дизайн