powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорить обработку запросов к базе, таблица 800 млн. записей
9 сообщений из 9, страница 1 из 1
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38969942
mr.Lindon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Есть таблица в базе MySQL - 800 млн. записей.
Необходимо, чтобы запросы Select,Update,Insert выполнялись (максимум несколько секунд), сейчас каждый занимает около минуты.
Запросы:

Код: sql
1.
Select ID,data From  tbl_data Where status=0 AND checked=0 Limit 0,1000

Код: sql
1.
Update tbl_data Set status=2,date_handled='$curr_date_time' Where ID IN($IdList)

Код: sql
1.
Update tbl_data Set status=0 Where status=2 AND HOUR(TIMEDIFF('$curr_date_time', date_handled)) >= 25

Код: sql
1.
Insert Into tbl_data Set data='$data'


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE `tbl_data` (
  `ID` int(10) unsigned NOT NULL auto_increment,
  `data` varchar(250) NOT NULL,
  `checked` tinyint(1) NOT NULL default '0',
  `status` int(11) NOT NULL default '0',
  `date_handled` datetime NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `ID` (`ID`),
  KEY `combined` (`checked`,`status`), 
  FULLTEXT KEY `domain_fulltext_index` (`data`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38969953
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Lindon
Код: sql
1.
  UNIQUE KEY `ID` (`ID`),

Это выбросьте, оно не нужно при наличии первичного ключа по этому же полю.

Первый и второй запрос уже сейчас должны работать быстро. Если это не так, то их план в студию (по крайней мере первого).

Третий запрос надо переписать, чтобы поле date_handled сравнивалось с каким-то выражением, а не участвовало в нем. Тогда понадобится индекс (status, date_handled).

В четвертом тормозить вообще нечему.
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38969961
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Lindon,

Кстати, key_buffer_size какого размера?
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38969973
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Lindonсейчас каждый занимает около минуты.
-- не может быть. Хотя бы INSERT должен выполняться гораздо быстрее, это одна запись.

По остальным запросам -- нужно знать в первую очередь, сколько они обрабатывают записей:

Код: sql
1.
2.
3.
4.
5.
select count(*) from tbl_data tbl_data Where status=0 AND checked=0

select count(*) from tbl_data Where ID IN($IdList)

select count(*) from tbl_data Where status=2 AND HOUR(TIMEDIFF('$curr_date_time', date_handled)) >= 25;
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38969983
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПо остальным запросам -- нужно знать в первую очередь, сколько они обрабатывают записей:

Код: sql
1.
2.
3.
4.
5.
select count(*) from tbl_data tbl_data Where status=0 AND checked=0

select count(*) from tbl_data Where ID IN($IdList)

select count(*) from tbl_data Where status=2 AND HOUR(TIMEDIFF('$curr_date_time', date_handled)) >= 25;

Первый - не более 1000. Третий - все 800 млн.
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38970009
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftMasterZivПо остальным запросам -- нужно знать в первую очередь, сколько они обрабатывают записей:

Код: sql
1.
2.
3.
4.
5.
select count(*) from tbl_data tbl_data Where status=0 AND checked=0

select count(*) from tbl_data Where ID IN($IdList)

select count(*) from tbl_data Where status=2 AND HOUR(TIMEDIFF('$curr_date_time', date_handled)) >= 25;

Первый - не более 1000. Третий - все 800 млн.

А ты-то откуда знаешь ?
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38970027
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivmiksoftпропущено...
Первый - не более 1000. Третий - все 800 млн.

А ты-то откуда знаешь ?
В первом - LIMIT.
В третьем четвёртом - нет условий отбора.
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38970073
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если убрать FULLTEXT KEY?
...
Рейтинг: 0 / 0
Ускорить обработку запросов к базе, таблица 800 млн. записей
    #38970096
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaА ты-то откуда знаешь ?
В первом - LIMIT.
[/quot]

А я без лимита специально спрашивал...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорить обработку запросов к базе, таблица 800 млн. записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]