powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Невозможно долгая обработка запроса на mysql 4.x
25 сообщений из 29, страница 1 из 2
Невозможно долгая обработка запроса на mysql 4.x
    #32519060
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, прошу прощения за оффтопик, но проблема критичная и на форуме, я, к сожалению, ответа не нашёл.

Есть сложный SELECT, который обрабатывается по-разному на разных версиях баз.
mysql-max 3.23 - 0.50 сек
mysql-nt 4.0.16 - 17 сек!!!

В чём может быть проблема?
Заранее спасибо за ответы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
#
# Структура таблицы `tbaddaccess`
#

CREATE TABLE `tbaddaccess` (
  `idAddAccess` int( 2 ) NOT NULL auto_increment,
  `StrAddAccess` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idAddAccess`),
  KEY `idAddAccess` (`idAddAccess`)
) TYPE=MyISAM COMMENT='Таблица дополнительных принадлежностей' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbaddaccess`
#

INSERT INTO `tbaddaccess` VALUES ( 1 , 'Какие-то дополнительные принадлежности');
INSERT INTO `tbaddaccess` VALUES ( 2 , 'Ещё доп. Принадлежности');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbcodename`
#

CREATE TABLE `tbcodename` (
  `idMCode` int( 2 ) NOT NULL auto_increment,
  `StrCodeName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idMCode`),
  KEY `idMCode` (`idMCode`)
) TYPE=MyISAM COMMENT='Таблица кодов товара' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbcodename`
#

INSERT INTO `tbcodename` VALUES ( 1 , '1B');
INSERT INTO `tbcodename` VALUES ( 2 , '1B.1D');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbcolor`
#

CREATE TABLE `tbcolor` (
  `idColor` int( 2 ) NOT NULL auto_increment,
  `StrColor` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idColor`),
  KEY `idColor` (`idColor`)
) TYPE=MyISAM COMMENT='Таблица цветов покрытия' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbcolor`
#

INSERT INTO `tbcolor` VALUES ( 1 , 'Серебристый металлик');
INSERT INTO `tbcolor` VALUES ( 2 , 'Белый');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbcomments`
#

CREATE TABLE `tbcomments` (
  `idComment` int( 2 ) NOT NULL auto_increment,
  `StrComment` varchar( 50 ) NOT NULL default '',
  PRIMARY KEY  (`idComment`),
  KEY `idComment` (`idComment`)
) TYPE=MyISAM COMMENT='Таблица примечаний' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbcomments`
#

INSERT INTO `tbcomments` VALUES ( 1 , 'Какие-то дополнения 1');
INSERT INTO `tbcomments` VALUES ( 2 , 'Какие-то дополнения 2');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbcurrency`
#

CREATE TABLE `tbcurrency` (
  `idCurrency` int( 2 ) NOT NULL auto_increment,
  `StrCurrency` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idCurrency`),
  KEY `idCurrency` (`idCurrency`)
) TYPE=MyISAM COMMENT='Таблица валют' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbcurrency`
#

INSERT INTO `tbcurrency` VALUES ( 1 , 'Доллары США');
INSERT INTO `tbcurrency` VALUES ( 2 , 'Рубли');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbdescrconf`
#

CREATE TABLE `tbdescrconf` (
  `idDescrConf` int( 2 ) NOT NULL auto_increment,
  `StrDescrConf` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idDescrConf`),
  KEY `idDescrConf` (`idDescrConf`)
) TYPE=MyISAM COMMENT='Таблица описаний конфигурации товаров' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbdescrconf`
#

INSERT INTO `tbdescrconf` VALUES ( 1 , 'Одночашечная');
INSERT INTO `tbdescrconf` VALUES ( 2 , 'С крылом');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbdescrform`
#

CREATE TABLE `tbdescrform` (
  `idDescrForm` int( 2 ) NOT NULL auto_increment,
  `StrDescrForm` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idDescrForm`),
  KEY `idDescrForm` (`idDescrForm`)
) TYPE=MyISAM COMMENT='Таблица описаний форм моек' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbdescrform`
#

INSERT INTO `tbdescrform` VALUES ( 1 , 'Круглая');
INSERT INTO `tbdescrform` VALUES ( 2 , 'Овальная');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbdescrsink`
#

CREATE TABLE `tbdescrsink` (
  `idDescrSink` int( 2 ) NOT NULL auto_increment,
  `StrDescrSink` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idDescrSink`),
  KEY `idDescrSink` (`idDescrSink`)
) TYPE=MyISAM COMMENT='Таблица описания слива' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbdescrsink`
#

INSERT INTO `tbdescrsink` VALUES ( 1 , 'Простой');
INSERT INTO `tbdescrsink` VALUES ( 2 , 'Сложный');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbfamily`
#

CREATE TABLE `tbfamily` (
  `idFamily` int( 2 ) NOT NULL auto_increment,
  `StrFamilyName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idFamily`),
  KEY `idFamily` (`idFamily`),
  KEY `idFamily_2` (`idFamily`)
) TYPE=MyISAM COMMENT='Таблица семейств моек' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbfamily`
#

INSERT INTO `tbfamily` VALUES ( 1 , 'Beta');
INSERT INTO `tbfamily` VALUES ( 2 , 'Regent');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbgroups`
#

CREATE TABLE `tbgroups` (
  `idGroup` int( 2 ) NOT NULL auto_increment,
  `StrGroupName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idGroup`),
  KEY `idGroup` (`idGroup`)
) TYPE=MyISAM COMMENT='Таблица групп моек' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbgroups`
#

INSERT INTO `tbgroups` VALUES ( 1 , 'Мойка');
INSERT INTO `tbgroups` VALUES ( 2 , 'Смеситель');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbgtd`
#

CREATE TABLE `tbgtd` (
  `idGTD` int( 2 ) NOT NULL auto_increment,
  `StrGTD` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idGTD`),
  KEY `idGTD` (`idGTD`)
) TYPE=MyISAM COMMENT='Таблица кодов ГТД' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbgtd`
#

INSERT INTO `tbgtd` VALUES ( 1 , '1111');
INSERT INTO `tbgtd` VALUES ( 2 , '2222');

#  --------------------------------------------------------
 

#
# Структура таблицы `tblr`
#

CREATE TABLE `tblr` (
  `idLR` int( 2 ) NOT NULL auto_increment,
  `StrLeftRight` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idLR`),
  KEY `idLR` (`idLR`)
) TYPE=MyISAM COMMENT='Таблица (левая/правая)' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tblr`
#

INSERT INTO `tblr` VALUES ( 1 , 'Левая');
INSERT INTO `tblr` VALUES ( 2 , 'Правая');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbmaterial`
#

CREATE TABLE `tbmaterial` (
  `idDescrMaterial` int( 2 ) NOT NULL auto_increment,
  `StrDescrMaterial` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idDescrMaterial`),
  KEY `idDescrMaterial` (`idDescrMaterial`)
) TYPE=MyISAM COMMENT='Таблица материалов' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbmaterial`
#

INSERT INTO `tbmaterial` VALUES ( 1 , 'Гранит');
INSERT INTO `tbmaterial` VALUES ( 2 , 'Сталь');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbnds`
#

CREATE TABLE `tbnds` (
  `idNDS` int( 2 ) NOT NULL auto_increment,
  `snNDS` decimal( 10 , 2 ) NOT NULL default '0.00',
  PRIMARY KEY  (`idNDS`),
  KEY `idNDS` (`idNDS`)
) TYPE=MyISAM COMMENT='Таблица ставок НДС' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbnds`
#

INSERT INTO `tbnds` VALUES ( 1 , '10.00');
INSERT INTO `tbnds` VALUES ( 2 , '15.00');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbpackage`
#

CREATE TABLE `tbpackage` (
  `idPackage` int( 2 ) NOT NULL auto_increment,
  `StrPackage` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idPackage`),
  KEY `idPackage` (`idPackage`)
) TYPE=MyISAM COMMENT='Таблица упаковок' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbpackage`
#

INSERT INTO `tbpackage` VALUES ( 1 , 'Палета');
INSERT INTO `tbpackage` VALUES ( 2 , 'Коробка');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbprodtypes`
#

CREATE TABLE `tbprodtypes` (
  `idProdType` int( 2 ) NOT NULL auto_increment,
  `StrProdType` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idProdType`),
  KEY `idProdType` (`idProdType`)
) TYPE=MyISAM COMMENT='Таблица типов товаров' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbprodtypes`
#

INSERT INTO `tbprodtypes` VALUES ( 1 , 'Комплект');
INSERT INTO `tbprodtypes` VALUES ( 2 , 'Товар');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbproducts`
#

CREATE TABLE `tbproducts` (
  `idProd` int( 11 ) NOT NULL auto_increment,
  `IntCode` int( 11 ) default NULL,
  `idProdType` int( 2 ) NOT NULL default '0',
  `idNDS` int( 11 ) NOT NULL default '0',
  `IntOKDP` int( 11 ) default NULL,
  `StrName` varchar( 255 ) default NULL,
  `idCurrency` int( 11 ) NOT NULL default '0',
  `idUnit` int( 11 ) NOT NULL default '0',
  `BlCat1` enum('Y','N') NOT NULL default 'N',
  `BlCat2` enum('Y','N') NOT NULL default 'N',
  `idGTD` int( 11 ) NOT NULL default '0',
  `IntMinRest` int( 11 ) default NULL,
  `idVendors` int( 11 ) NOT NULL default '0',
  `idGroup` int( 11 ) NOT NULL default '0',
  `idFamily` int( 11 ) NOT NULL default '0',
  `idMCode` int( 11 ) NOT NULL default '0',
  `idSurf` int( 11 ) NOT NULL default '0',
  `idSinks` int( 11 ) NOT NULL default '0',
  `idLR` int( 11 ) NOT NULL default '0',
  `idPackage` int( 11 ) NOT NULL default '0',
  `idComment` int( 11 ) NOT NULL default '0',
  `StrNewName` varchar( 255 ) default NULL,
  `LnWidth` int( 11 ) default NULL,
  `LnLenght` int( 11 ) default NULL,
  `LnDepth` int( 11 ) default NULL,
  `LnHoleWidth` int( 11 ) default NULL,
  `LnHoleLenght` int( 11 ) default NULL,
  `LnTumbaWidth` int( 11 ) default NULL,
  `LnTumbaLenght` int( 11 ) default NULL,
  `idDescrForm` int( 11 ) NOT NULL default '0',
  `idDescrConf` int( 11 ) NOT NULL default '0',
  `idDescrSink` int( 11 ) NOT NULL default '0',
  `idDescrMaterial` int( 11 ) NOT NULL default '0',
  `LnTickness` int( 11 ) default NULL,
  `idStandartCompl` int( 11 ) NOT NULL default '0',
  `idAddAccess` int( 11 ) NOT NULL default '0',
  `BlSinkHole` enum('Y','N') NOT NULL default 'N',
  `idColor` int( 11 ) NOT NULL default '0',
  PRIMARY KEY  (`idProd`),
  KEY `idProd` (`idProd`),
  KEY `StrName` (`StrName`)
) TYPE=MyISAM COMMENT='Таблица товаров' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbproducts`
#

INSERT INTO `tbproducts` VALUES ( 1 ,  123 ,  1 ,  1 ,  321 , 'Товар №1',  1 ,  1 , 'Y', 'N',  1 ,  5 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 , 'Новое название товара №1',  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,  20 ,  1 ,  1 ,  1 ,  1 ,  21 ,  1 ,  1 , 'Y',  1 );
INSERT INTO `tbproducts` VALUES ( 2 ,  456 ,  2 ,  2 ,  789 , 'Товар №2',  2 ,  2 , 'N', 'Y',  2 ,  9 ,  2 ,  2 ,  2 ,  2 ,  2 ,  2 ,  2 ,  2 ,  2 , 'Новое название №2',  30 ,  31 ,  32 ,  33 ,  34 ,  35 ,  36 ,  2 ,  2 ,  2 ,  2 ,  37 ,  2 ,  2 , 'N',  2 );

#  --------------------------------------------------------
 

#
# Структура таблицы `tbsinknames`
#

CREATE TABLE `tbsinknames` (
  `idSinks` int( 2 ) NOT NULL auto_increment,
  `StrSinkName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idSinks`),
  KEY `idSinks` (`idSinks`)
) TYPE=MyISAM COMMENT='Таблица сливов 2' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbsinknames`
#

INSERT INTO `tbsinknames` VALUES ( 1 , '2,5" с железной пробкой');
INSERT INTO `tbsinknames` VALUES ( 2 , '3,5" без пробки');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbstandartcompl`
#

CREATE TABLE `tbstandartcompl` (
  `idStandartCompl` int( 2 ) NOT NULL auto_increment,
  `StrStandartCompl` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idStandartCompl`),
  KEY `idStandartCompl` (`idStandartCompl`)
) TYPE=MyISAM COMMENT='Таблица описания стандартной комплектации' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbstandartcompl`
#

INSERT INTO `tbstandartcompl` VALUES ( 1 , 'Стандартная комплектация 1');
INSERT INTO `tbstandartcompl` VALUES ( 2 , 'Стандартная комплектация 2');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbsurfaces`
#

CREATE TABLE `tbsurfaces` (
  `idSurf` int( 2 ) NOT NULL auto_increment,
  `StrSurfName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idSurf`),
  KEY `idSurf` (`idSurf`)
) TYPE=MyISAM COMMENT='Таблица поверхностей' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbsurfaces`
#

INSERT INTO `tbsurfaces` VALUES ( 1 , 'Матовая');
INSERT INTO `tbsurfaces` VALUES ( 2 , 'Лакерованная');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbunits`
#

CREATE TABLE `tbunits` (
  `idUnit` int( 2 ) NOT NULL auto_increment,
  `StrUnitName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idUnit`),
  KEY `idUnit` (`idUnit`)
) TYPE=MyISAM COMMENT='Таблица единиц измерения' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbunits`
#

INSERT INTO `tbunits` VALUES ( 1 , 'шт.');
INSERT INTO `tbunits` VALUES ( 2 , '100 шт.');

#  --------------------------------------------------------
 

#
# Структура таблицы `tbvendors`
#

CREATE TABLE `tbvendors` (
  `idVendors` int( 2 ) NOT NULL auto_increment,
  `StrVendorName` varchar( 50 ) default NULL,
  PRIMARY KEY  (`idVendors`),
  KEY `idVendors` (`idVendors`)
) TYPE=MyISAM COMMENT='Таблица производителей' AUTO_INCREMENT= 3  ;

#
# Дамп данных таблицы `tbvendors`
#

INSERT INTO `tbvendors` VALUES ( 1 , 'Reginox');
INSERT INTO `tbvendors` VALUES ( 2 , 'Teka');

# Запрос
SELECT 
	tbproducts.*, 
	tbprodtypes.StrProdType, 
	tbnds.snNDS, 
	tbcurrency.StrCurrency, 
	tbunits.StrUnitName, 
	tbgtd.StrGTD, 
	tbvendors.StrVendorName, 
	tbgroups.StrGroupName, 
	tbfamily.StrFamilyName, 
	tbcodename.StrCodeName, 
	tbsurfaces.StrSurfName, 
	tbsinknames.StrSinkName, 
	tblr.StrLeftRight, 
	tbpackage.StrPackage, 
	tbcomments.StrComment, 
	tbdescrform.StrDescrForm, 
	tbdescrconf.StrDescrConf, 
	tbdescrsink.StrDescrSink, 
	tbmaterial.StrDescrMaterial, 
	tbstandartcompl.StrStandartCompl, 
	tbaddaccess.StrAddAccess, 
	tbcolor.StrColor 
FROM 
	tbproducts, 
	tbprodtypes, 
	tbnds, 
	tbcurrency, 
	tbunits, 
	tbgtd, 
	tbvendors, 
	tbgroups, 
	tbfamily, 
	tbcodename, 
	tbsurfaces, 
	tbsinknames, 
	tblr, 
	tbpackage, 
	tbcomments, 
	tbdescrform, 
	tbdescrconf, 
	tbdescrsink, 
	tbmaterial, 
	tbstandartcompl, 
	tbaddaccess, 
	tbcolor 
WHERE 
	tbproducts.idProdType = tbprodtypes.idProdType AND 
	tbproducts.idNDS = tbnds.idNDS AND 
	tbproducts.idCurrency = tbcurrency.idCurrency AND 
	tbproducts.idUnit = tbunits.idUnit AND 
	tbproducts.idGTD = tbgtd.idGTD AND 
	tbproducts.idVendors = tbvendors.idVendors AND 
	tbproducts.idGroup = tbgroups.idGroup AND 
	tbproducts.idFamily = tbfamily.idFamily AND 
	tbproducts.idMCode = tbcodename.idMCode AND 
	tbproducts.idSurf = tbsurfaces.idSurf AND 
	tbproducts.idSinks = tbsinknames.idSinks AND 
	tbproducts.idLR = tblr.idLR AND 
	tbproducts.idPackage = tbpackage.idPackage AND 
	tbproducts.idComment = tbcomments.idComment AND 
	tbproducts.idDescrForm = tbdescrform.idDescrForm AND 
	tbproducts.idDescrConf = tbdescrconf.idDescrConf AND 
	tbproducts.idDescrSink = tbdescrsink.idDescrSink AND 
	tbproducts.idDescrMaterial = tbmaterial.idDescrMaterial AND 
	tbproducts.idStandartCompl = tbstandartcompl.idStandartCompl AND 
	tbproducts.idAddAccess = tbaddaccess.idAddAccess AND 
	tbproducts.idColor = tbcolor.idColor;
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519062
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заметил ещё одну особенность.

Если в условии WHERE 11 таблиц, то запрос выполняется 0.4 сек., если я добавляю в условие 12-ю (причём любую) таблицу, то запрос сразу ежё выполняется 4.5 сек, 13-Ю (тоже любую) - 9.7 и т.д.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519160
гуестт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы из общих соображений для начала собрал бы все эти таблички со структурой int(2) varchar(50) в одну. Ввел бы третье поле для дополнительного атрибута (типа что это - цвет, упаковка, полировка-лакировка и т.д.)
Скорей всего запрос будет легче бегать.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519416
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как тогда будет выглядеть запрос?

Вообще вариантов по снижению количества таблиц много, но ведь и без этого всё должно работать. Но почему-то не работает...
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519427
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как мне кажется, здесь тормоза из-за перебора всех возможных планов запроса, вот это наводит на такую мысль:
meddows
если я добавляю в условие 12-ю (причём любую) таблицу, то запрос сразу ежё выполняется 4.5 сек, 13-Ю (тоже любую) - 9.7 и т.д.

Это лечится только заменой оптимизатора или уменьшением кол-ва таблиц в запросе.

По поводу замены оптимизатора: в PostgreSQL для этих случаев предусмотрен генетический алгоритм, который позволяет обойтись без полного перебора планов. Если таких запросов в приложении предполагается много, подумай о смене СУБД.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519485
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оччень сомневаюсь что дело в поиске плана..
Покажте explain пожалуйста.. такие вопросы (быстродействия) вообще должны начинаться с explain и c my.cnf


В любом случае план запроса можно подправить как вы хотите с помощью use index, force index, ignore index и тд
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519537
Фотография itworld.amillo.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А индексы есть?





"Я не разделяю ваших галюцинаций" Геродот Американский.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32519540
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХренПокажте explain пожалуйста..
Кстати правильная мысль... Если сам Explain будет работать долго, значит дело в переборе планов запроса, если отработает быстро --- в чём-то ещё.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32520405
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы и поиск решения. НО, по-моему, ответ следует искать несколько в ином направлении. Данный запрос ЛЕТАЕТ на следующих базах данных, время выполнения – менее 1 секунды: MySQL 3.23, Microsoft Access, Microsoft SQL 2000 и только на MySQL 4.0.16 (Windows) и MySQL 4.0.18 (Unix) он тормозит, причём тормозит конкретно. В Access’e и SQL2000 я индексов вообще не создавал.
В MySQL 4.x у меня созданы индексы на каждом PRIMARY поле в таблицах-справочниках. И на самом деле 21 таблица на таком несложном запросе не так уж много и теоретически всё должно работать очень быстро, учитывая ещё и то, что запрос должен вернуть всего 2 записи!
К сожалению, если б была возможность сменить СУБД или хотя бы перейти на 3.23 я бы так и сделал, но пока это исключено. Нужно всё заставить работать на mySQL 4.x.
My.cnf у меня полностью повторяет my-large.cnf. EXPLAIN привожу ниже. На mySQL 4.x он выполняется настолько же долго насколько и просто SELECT.
И ещё раз о скорости… Когда в плане менее 11 таблиц всё работает быстро, как только добавляется 12-ая таблица – скорость выполнения запроса сразу же увеличивается в 10 раз, тринадцатая, четырнадцатая и т.д. таблицы увеличивают каждый из запросов вдвое.
Мне кажется, что проблема в самом mySQL, либо в каких-то настройках. Вопрос только в каких. Дело в том, что как я и говорил запрос работает невозможно долго у меня на Windows и на сервере, где стоит Unix. Базы ставили и, возможно, конфигурили абсолютно разные люди. Сомневаюсь, что я и админ сервера изменили «случайно» одну и ту же переменную в настройках. Скорее всего, она по умолчанию проставлена как-то криво.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
+ -----------------+--------+-----------------------------+---------+---------+----------------------------+------+-------+
 
| table           | type   | possible_keys               | key     | key_len | ref                        | rows | Extra |
+ -----------------+--------+-----------------------------+---------+---------+----------------------------+------+-------+
 
| tbproducts      | ALL    | idCurrency,idFamily,idGroup | NULL    |    NULL | NULL                       |     2  |       |
| tbprodtypes     | eq_ref | PRIMARY,idProdType          | PRIMARY |        4  | tbproducts.idProdType      |     1  |       |
| tbnds           | eq_ref | PRIMARY,idNDS               | PRIMARY |        4  | tbproducts.idNDS           |     1  |       |
| tbcurrency      | eq_ref | PRIMARY,idCurrency          | PRIMARY |        4  | tbproducts.idCurrency      |     1  |       |
| tbunits         | eq_ref | PRIMARY,idUnit              | PRIMARY |        4  | tbproducts.idUnit          |     1  |       |
| tbgtd           | eq_ref | PRIMARY,idGTD               | PRIMARY |        4  | tbproducts.idGTD           |     1  |       |
| tbvendors       | eq_ref | PRIMARY,idVendors           | PRIMARY |        4  | tbproducts.idVendors       |     1  |       |
| tbgroups        | eq_ref | PRIMARY,idGroup             | PRIMARY |        4  | tbproducts.idGroup         |     1  |       |
| tbfamily        | eq_ref | PRIMARY,idFamily,idFamily_2 | PRIMARY |        4  | tbproducts.idFamily        |     1  |       |
| tbcodename      | eq_ref | PRIMARY,idMCode             | PRIMARY |        4  | tbproducts.idMCode         |     1  |       |
| tbsurfaces      | eq_ref | PRIMARY,idSurf              | PRIMARY |        4  | tbproducts.idSurf          |     1  |       |
| tbsinknames     | eq_ref | PRIMARY,idSinks             | PRIMARY |        4  | tbproducts.idSinks         |     1  |       |
| tblr            | eq_ref | PRIMARY,idLR                | PRIMARY |        4  | tbproducts.idLR            |     1  |       |
| tbpackage       | eq_ref | PRIMARY,idPackage           | PRIMARY |        4  | tbproducts.idPackage       |     1  |       |
| tbcomments      | eq_ref | PRIMARY,idComment           | PRIMARY |        4  | tbproducts.idComment       |     1  |       |
| tbdescrform     | eq_ref | PRIMARY,idDescrForm         | PRIMARY |        4  | tbproducts.idDescrForm     |     1  |       |
| tbdescrconf     | eq_ref | PRIMARY,idDescrConf         | PRIMARY |        4  | tbproducts.idDescrConf     |     1  |       |
| tbdescrsink     | eq_ref | PRIMARY,idDescrSink         | PRIMARY |        4  | tbproducts.idDescrSink     |     1  |       |
| tbmaterial      | eq_ref | PRIMARY,idDescrMaterial     | PRIMARY |        4  | tbproducts.idDescrMaterial |     1  |       |
| tbstandartcompl | eq_ref | PRIMARY,idStandartCompl     | PRIMARY |        4  | tbproducts.idStandartCompl |     1  |       |
| tbaddaccess     | eq_ref | PRIMARY,idAddAccess         | PRIMARY |        4  | tbproducts.idAddAccess     |     1  |       |
| tbcolor         | eq_ref | PRIMARY,idColor             | PRIMARY |        4  | tbproducts.idColor         |     1  |       |
+-----------------+--------+-----------------------------+---------+---------+----------------------------+------+-------+
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32520811
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
meddowsEXPLAIN привожу ниже. На mySQL 4.x он выполняется настолько же долго насколько и просто SELECT.


Что и требовалось доказать, дело в переборе планов запроса.

Решение: выбрось каку.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32520839
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что выбрасывать, если мне все данные нужны?
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32520898
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под "какой" понимается MySQL 4.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32521129
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был бы я админом того сервака, на котором хостюсь - с удовольствием!
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32521142
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
::пожимая плечами::

тогда кушай каку и не жалуйся.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32521204
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется найти решение, а не каку жевать...
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32521273
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решения я здесь вижу 2:
1) перейти с MySQL 4.x на что-нибудь другое (я бы предложил PostgreSQL, причину см. выше в треде, хостер наверняка его предоставляет).
2) уменьшить количество таблиц в запросе.

Есть ещё вариант 3: оставить всё как есть, сесть в позу лотоса и читать мантру "MySQL не может тормозить" до наступления просветления.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32521291
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смущает то, что на трёшке всё нормально функционирует.

Первые 2 варианта, к сожалению, пока отпадают.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32524335
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно трабл :(((

2 meddows
Даже если побороть тормоза оптимизатора, я бы все-таки уменьшил кол-во таблиц в запросе.

Пока у тебя 22 таблицы с 2 записями каждая - декартово произведение= 4194304, не так много.

А если ХОТЯ БЫ по 100 записей - уже 1+Е44
А если каждая вырастет до такой малости как 1000 -1+Е66.

Тут по-моему любая субда встанет, хоть бы у них были трижды генетические алгоритмы.

2 Хрен
А как такие вещи можно использовать?
Как например задать план оптимизации?
Пример, если можно.

2 Sad Spirit
Ты так часто говоришь про каки.
Скажи, тебе нравятся каки, да?
Что-то здесь запахло падалью (с) Маугли

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32524969
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Marat_L
Ты так часто говоришь про каки.
Скажи, тебе нравятся каки, да?
Что-то здесь запахло падалью (с) Маугли

я тебя, censored , в этот тред послал, чтоб ты человеку помог (если сможешь, хе-хе), а ты, censored , мне вместо этого хамить начал?.. Что, если вопрос чуть выходит за пределы пересказа мысклёвого мануала, одно слюнобрызгание только и остаётся?..

А у Киплинга мне больше нравится стишок про бремя белого человека: просто таки как я вас тут просвещаю, а мне в ответ ни слова благодарности. Э-эх.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32525223
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уйди не жужжи

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32529470
mechanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
meddows
Хмм, тестил на max-nt-4.0.12: время выполнения - 0.0046 сек.
Мож, дело в max-версии? Хотя ее отличие только в *DB таблицах...
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32529545
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 mechanoid
Прикольно. Теперь я вообще ничего не понимаю. Две разные базы на разных машинах дают один и тот же результат (тормозной), а твоя 12-ая версия работает нормально... Может она у тебя отконфигурина как-то по-особенному?
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32529579
mechanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
meddows
Не, пробовал со стандартным my-large.cnf. Он, кстати, во всех версиях один или нет?
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32529866
mechanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть мысль: попробуй запрос переписать с JOIN'ами, а то в твоем SELECT'e производится полное связывание 22 таблиц, что не есть хорошо.
...
Рейтинг: 0 / 0
Невозможно долгая обработка запроса на mysql 4.x
    #32530761
meddows
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пробовал INNER JOIN. Абсолютно такой же результат.
По поводу my-large.cnf не знаю...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Невозможно долгая обработка запроса на mysql 4.x
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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