SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.11.2008 13:31:31

iwsb
Участник
Зарегистрирован: 19.11.2008
Сообщений: 6

Mysql NDB кластер тормозит на select

Mysql NDB кластер тормозит на select -
Есть проблема с базой данных (Mysql NDB кластер):
таблица _user c 300K записей, есть поле fieldname с индексом на нем.
запрос select * from _user where fieldname=14405168
занимает порядка 10-30 секунд. Нужен специалист чтобы срочно это починить. ICQ 82812304

Неактивен

 

#2 19.11.2008 14:53:40

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Mysql NDB кластер тормозит на select

Выложите EXPLAIN EXTENDED запроса (или отправьте на sakila@sqlinfo.ru).
И что выдает SHOW VARIABLES LIKE 'engine_condition_pushdown'?

Неактивен

 

#3 19.11.2008 15:32:29

iwsb
Участник
Зарегистрирован: 19.11.2008
Сообщений: 6

Re: Mysql NDB кластер тормозит на select

+----+-------------+-------------+------+---------------+------+---------+------+--------+-------------+
    -> | id | select_type | table       | type | possible_keys | key  | key_len | ref  | rows   | Extra       |
    -> +----+-------------+-------------+------+---------------+------+---------+------+--------+-------------+
    -> |  1 | SIMPLE      | phpfox_user | ALL  | NULL          | NULL | NULL    | NULL | 350852 | Using where |
    -> +----+-------------+-------------+------+---------------+------+---------+------+--------+-------------+

engine_condition_pushdown - ON

Неактивен

 

#4 19.11.2008 15:36:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Mysql NDB кластер тормозит на select

Поле похоже не ключ. Приведите SHOW CREATE TABLE phpfox_user;

Неактивен

 

#5 19.11.2008 15:40:38

iwsb
Участник
Зарегистрирован: 19.11.2008
Сообщений: 6

Re: Mysql NDB кластер тормозит на select

| phpfox_user | CREATE TABLE `phpfox_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` tinyint(4) NOT NULL DEFAULT '3',
  `user` varchar(25) NOT NULL DEFAULT '',
  `password` varchar(35) NOT NULL DEFAULT '',
  `email` varchar(50) NOT NULL DEFAULT '',
  `gender` mediumint(9) NOT NULL,
  `age` char(2) NOT NULL DEFAULT '',
  `day` char(2) NOT NULL DEFAULT '',
  `month` char(2) NOT NULL DEFAULT '',
  `year` varchar(4) NOT NULL DEFAULT '',
  `location` mediumint(9) NOT NULL,
  `signup` int(11) NOT NULL DEFAULT '0',
  `signup_ip` varchar(20) NOT NULL DEFAULT '',
  `login` int(11) NOT NULL DEFAULT '0',
  `login_ip` varchar(20) NOT NULL DEFAULT '',
  `rec` varchar(20) NOT NULL DEFAULT '',
  `update` varchar(20) NOT NULL DEFAULT '',
  `headline` text NOT NULL,
  `views` int(11) NOT NULL DEFAULT '0',
  `css` int(11) NOT NULL,
  `rateon` char(1) NOT NULL DEFAULT '',
  `verify` tinyint(1) unsigned NOT NULL,
  `verifycode` varchar(20) NOT NULL DEFAULT '',
  `videon` char(1) NOT NULL DEFAULT '',
  `p_update` varchar(10) NOT NULL DEFAULT '0',
  `music_video` varchar(8) NOT NULL DEFAULT '',
  `not_1` char(1) NOT NULL DEFAULT '',
  `not_2` char(1) NOT NULL DEFAULT '',
  `not_3` char(1) NOT NULL DEFAULT '',
  `not_4` char(1) NOT NULL DEFAULT '',
  `not_5` char(1) NOT NULL DEFAULT '',
  `feature` tinyint(1) NOT NULL,
  `state` varchar(20) NOT NULL DEFAULT '',
  `zip` varchar(20) NOT NULL DEFAULT '0',
  `city` varchar(30) NOT NULL DEFAULT '',
  `user_online` tinyint(4) NOT NULL DEFAULT '0',
  `user_rating` decimal(4,2) NOT NULL DEFAULT '0.00',
  `friends_only` tinyint(4) NOT NULL DEFAULT '0',
  `friends_comment` tinyint(4) NOT NULL DEFAULT '0',
  `setting_gb_html` tinyint(4) NOT NULL DEFAULT '0',
  `remember_me` char(1) NOT NULL DEFAULT '',
  `new_pass` varchar(25) NOT NULL DEFAULT '',
  `is_banned` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `last_payment` datetime DEFAULT '0000-00-00 00:00:00',
  `total_points` int(11) NOT NULL DEFAULT '0',
  `actual_song_id` int(10) unsigned NOT NULL DEFAULT '0',
  `lang_file` tinyint(1) NOT NULL,
  `c_friends` int(11) NOT NULL,
  `c_comments` int(11) NOT NULL,
  `im_status` tinyint(3) unsigned NOT NULL,
  `plugin_style` int(10) unsigned NOT NULL,
  `msg_event` tinyint(1) unsigned NOT NULL,
  `total_friends` tinyint(2) unsigned NOT NULL,
  `dignews_votesgiven` int(11) NOT NULL DEFAULT '0',
  `dignews_votesreceived` int(11) NOT NULL DEFAULT '0',
  `dignews_posted` int(11) NOT NULL DEFAULT '0',
  `lwf_rows` tinyint(2) NOT NULL DEFAULT '5',
  `lwf_display` tinyint(1) NOT NULL DEFAULT '1',
  `lwf_permission` tinyint(1) NOT NULL DEFAULT '2',
  `lwf_left_or_right` char(5) NOT NULL DEFAULT 'left',
  `lwf_signature` text NOT NULL,
  `lwf_total_topics` int(11) NOT NULL DEFAULT '0',
  `lwf_visitor_topics` int(11) NOT NULL DEFAULT '0',
  `feature_time` int(100) NOT NULL DEFAULT '0',
  `feature_end` int(100) NOT NULL DEFAULT '0',
  `reactive` text,
  `arcade_champs` int(12) NOT NULL,
  `arcade_fav` int(12) NOT NULL,
  `dblon` text NOT NULL,
  `dblat` text NOT NULL,
  `mini` text NOT NULL,
  `fpreferrals` int(11) NOT NULL,
  `mood` text,
  `status` text,
  `sm_time` int(12) NOT NULL,
  `cj_phantom` tinyint(1) DEFAULT '0',
  `cj_friend` varchar(15) DEFAULT NULL,
  `picture` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user` (`user`),
  KEY `login` (`login`),
  KEY `verify` (`verify`,`feature`),
  KEY `email` (`email`),
  KEY `gender` (`gender`,`user_rating`),
  KEY `css` (`css`),
  KEY `cj_friend` (`cj_friend`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1

и запрос
select * from phpfox_user where cj_friend=18552980;

Неактивен

 

#6 19.11.2008 15:58:42

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Mysql NDB кластер тормозит на select

Все ясно. У Вас строковое поле, а запрос на число. Поэтому происходит неявное преобразование, что есть функция, которая и отменяет работу ключа. Неявно как бы int(cj_friend) = 18552980
Попробуйте:

select * from phpfox_user where cj_friend='18552980';

будете удивлены wink

Неактивен

 

#7 19.11.2008 16:39:56

iwsb
Участник
Зарегистрирован: 19.11.2008
Сообщений: 6

Re: Mysql NDB кластер тормозит на select

Спасибо огромное. Починилось smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson