Добрый день всем!
Помогите пожалуйста с оптимизацией "не трогая запрос"
Есть таблицы (да, да, не пинайте -это Битрикс :):
b_iblock - 48 записей
b_lang - 1 запись
b_iblock_element - 2 783 951 записи
b_iblock_element_prop_s28 - 41000 записей
b_iblock_section_element - 3 196 984 записей
b_iblock_section - 607 записей
b_iblock_site - 48 записей
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.
CREATE TABLE IF NOT EXISTS `b_iblock` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`IBLOCK_TYPE_ID` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`LID` char(2) COLLATE utf8_unicode_ci NOT NULL,
`CODE` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`NAME` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`SORT` int(11) NOT NULL DEFAULT '500',
`LIST_PAGE_URL` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`DETAIL_PAGE_URL` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`SECTION_PAGE_URL` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PICTURE` int(18) DEFAULT NULL,
`DESCRIPTION` text COLLATE utf8_unicode_ci,
`DESCRIPTION_TYPE` char(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
`RSS_TTL` int(11) NOT NULL DEFAULT '24',
`RSS_ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`RSS_FILE_ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`RSS_FILE_LIMIT` int(11) DEFAULT NULL,
`RSS_FILE_DAYS` int(11) DEFAULT NULL,
`RSS_YANDEX_ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`XML_ID` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`TMP_ID` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
`INDEX_ELEMENT` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`INDEX_SECTION` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`WORKFLOW` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`SECTION_CHOOSER` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`VERSION` int(11) NOT NULL DEFAULT '1',
`LAST_CONV_ELEMENT` int(11) NOT NULL DEFAULT '0',
`EDIT_FILE_BEFORE` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`EDIT_FILE_AFTER` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`SECTIONS_NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`SECTION_NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`ELEMENTS_NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`ELEMENT_NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`BIZPROC` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`LIST_MODE` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`SOCNET_GROUP_ID` int(18) DEFAULT NULL,
`RIGHTS_MODE` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`SECTION_PROPERTY` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `ix_iblock` (`IBLOCK_TYPE_ID`,`LID`,`ACTIVE`),
KEY `ix_perf_b_iblock_1` (`LID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=103 ;
CREATE TABLE IF NOT EXISTS `b_iblock_element` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIMESTAMP_X` datetime DEFAULT NULL,
`MODIFIED_BY` int(18) DEFAULT NULL,
`DATE_CREATE` datetime DEFAULT NULL,
`CREATED_BY` int(18) DEFAULT NULL,
`IBLOCK_ID` int(11) NOT NULL DEFAULT '0',
`IBLOCK_SECTION_ID` int(11) DEFAULT NULL,
`ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`ACTIVE_FROM` datetime DEFAULT NULL,
`ACTIVE_TO` datetime DEFAULT NULL,
`SORT` int(11) NOT NULL DEFAULT '500',
`NAME` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`PREVIEW_PICTURE` int(18) DEFAULT NULL,
`PREVIEW_TEXT` text COLLATE utf8_unicode_ci,
`PREVIEW_TEXT_TYPE` varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
`DETAIL_PICTURE` int(18) DEFAULT NULL,
`DETAIL_TEXT` longtext COLLATE utf8_unicode_ci,
`DETAIL_TEXT_TYPE` varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
`SEARCHABLE_CONTENT` text COLLATE utf8_unicode_ci,
`WF_STATUS_ID` int(18) DEFAULT '1',
`WF_PARENT_ELEMENT_ID` int(11) DEFAULT NULL,
`WF_NEW` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`WF_LOCKED_BY` int(18) DEFAULT NULL,
`WF_DATE_LOCK` datetime DEFAULT NULL,
`WF_COMMENTS` text COLLATE utf8_unicode_ci,
`IN_SECTIONS` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`XML_ID` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`CODE` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`TAGS` varchar(1023) COLLATE utf8_unicode_ci DEFAULT NULL,
`TMP_ID` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
`WF_LAST_HISTORY_ID` int(11) DEFAULT NULL,
`SHOW_COUNTER` int(18) DEFAULT NULL,
`SHOW_COUNTER_START` datetime DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `ix_iblock_element_1` (`IBLOCK_ID`,`IBLOCK_SECTION_ID`),
KEY `ix_iblock_element_4` (`IBLOCK_ID`,`XML_ID`,`WF_PARENT_ELEMENT_ID`),
KEY `ix_iblock_element_3` (`WF_PARENT_ELEMENT_ID`),
KEY `ix_iblock_element_code` (`IBLOCK_ID`,`CODE`),
KEY `ix_perf_b_iblock_element_1` (`WF_STATUS_ID`),
KEY `IBLOCK_ID` (`IBLOCK_ID`),
KEY `XML_ID` (`XML_ID`),
KEY `ACTIVE` (`ACTIVE`),
KEY `SORT` (`SORT`),
KEY `IN_SECTIONS` (`IN_SECTIONS`),
KEY `TMP_ID` (`TMP_ID`),
KEY `bbd_custom_index` (`IBLOCK_ID`,`ACTIVE`,`WF_PARENT_ELEMENT_ID`,`WF_STATUS_ID`),
KEY `quicksrt` (`ID`,`IBLOCK_ID`,`PREVIEW_PICTURE`,`SORT`),
KEY `qsrt2` (`IBLOCK_ID`,`ACTIVE`,`WF_STATUS_ID`,`WF_PARENT_ELEMENT_ID`,`SORT`),
KEY `qsrt3` (`ID`,`IBLOCK_ID`,`ACTIVE`,`WF_STATUS_ID`,`WF_PARENT_ELEMENT_ID`,`SORT`),
KEY `qsrt4` (`ID`,`SORT`),
KEY `qsrt5` (`IBLOCK_ID`,`ID`,`SORT`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4172008 ;
-- --------------------------------------------------------
--
-- Table structure for table `b_iblock_element_prop_s28`
--
CREATE TABLE IF NOT EXISTS `b_iblock_element_prop_s28` (
`IBLOCK_ELEMENT_ID` int(11) NOT NULL,
`PROPERTY_100` text COLLATE utf8_unicode_ci,
`DESCRIPTION_100` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_102` text COLLATE utf8_unicode_ci,
`DESCRIPTION_102` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_103` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_103` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_104` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_104` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_105` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_105` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_106` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_106` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_107` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_107` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_115` text COLLATE utf8_unicode_ci,
`DESCRIPTION_115` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_116` text COLLATE utf8_unicode_ci,
`DESCRIPTION_116` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_118` text COLLATE utf8_unicode_ci,
`DESCRIPTION_118` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_119` text COLLATE utf8_unicode_ci,
`DESCRIPTION_119` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_142` text COLLATE utf8_unicode_ci,
`DESCRIPTION_142` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_143` text COLLATE utf8_unicode_ci,
`DESCRIPTION_143` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_146` text COLLATE utf8_unicode_ci,
`DESCRIPTION_146` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_162` text COLLATE utf8_unicode_ci,
`DESCRIPTION_162` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_163` text COLLATE utf8_unicode_ci,
`DESCRIPTION_163` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_164` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_164` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_165` text COLLATE utf8_unicode_ci,
`DESCRIPTION_165` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_167` text COLLATE utf8_unicode_ci,
`DESCRIPTION_167` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_169` text COLLATE utf8_unicode_ci,
`DESCRIPTION_169` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_174` text COLLATE utf8_unicode_ci,
`DESCRIPTION_174` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_175` text COLLATE utf8_unicode_ci,
`DESCRIPTION_175` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_190` text COLLATE utf8_unicode_ci,
`DESCRIPTION_190` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_191` text COLLATE utf8_unicode_ci,
`DESCRIPTION_191` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_192` text COLLATE utf8_unicode_ci,
`DESCRIPTION_192` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_193` text COLLATE utf8_unicode_ci,
`DESCRIPTION_193` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_194` text COLLATE utf8_unicode_ci,
`DESCRIPTION_194` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_195` text COLLATE utf8_unicode_ci,
`DESCRIPTION_195` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_196` text COLLATE utf8_unicode_ci,
`DESCRIPTION_196` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_207` text COLLATE utf8_unicode_ci,
`DESCRIPTION_207` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_208` text COLLATE utf8_unicode_ci,
`DESCRIPTION_208` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_220` int(11) DEFAULT NULL,
`DESCRIPTION_220` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_226` int(11) DEFAULT NULL,
`DESCRIPTION_226` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_240` int(11) DEFAULT NULL,
`DESCRIPTION_240` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_284` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_284` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_285` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_285` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_289` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_289` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_290` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_290` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_307` text COLLATE utf8_unicode_ci,
`DESCRIPTION_307` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_308` text COLLATE utf8_unicode_ci,
`DESCRIPTION_308` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_309` int(11) DEFAULT NULL,
`DESCRIPTION_309` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_310` int(11) DEFAULT NULL,
`DESCRIPTION_310` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_314` int(11) DEFAULT NULL,
`DESCRIPTION_314` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_315` int(11) DEFAULT NULL,
`DESCRIPTION_315` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_321` text COLLATE utf8_unicode_ci,
`DESCRIPTION_321` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_339` text COLLATE utf8_unicode_ci,
`DESCRIPTION_339` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_340` text COLLATE utf8_unicode_ci,
`DESCRIPTION_340` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_341` text COLLATE utf8_unicode_ci,
`DESCRIPTION_341` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_363` text COLLATE utf8_unicode_ci,
`DESCRIPTION_363` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_364` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_364` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_365` int(11) DEFAULT NULL,
`DESCRIPTION_365` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_398` text COLLATE utf8_unicode_ci,
`DESCRIPTION_398` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_442` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_442` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_473` text COLLATE utf8_unicode_ci,
`DESCRIPTION_473` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_474` text COLLATE utf8_unicode_ci,
`DESCRIPTION_474` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_483` int(11) DEFAULT NULL,
`DESCRIPTION_483` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_486` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_486` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_488` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_488` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_493` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_493` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_494` int(11) DEFAULT NULL,
`DESCRIPTION_494` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_496` int(11) DEFAULT NULL,
`DESCRIPTION_496` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_633` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_633` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_634` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_634` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_635` int(11) DEFAULT NULL,
`DESCRIPTION_635` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_636` int(11) DEFAULT NULL,
`DESCRIPTION_636` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_637` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_637` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_641` int(11) DEFAULT NULL,
`DESCRIPTION_641` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_642` int(11) DEFAULT NULL,
`DESCRIPTION_642` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_643` int(11) DEFAULT NULL,
`DESCRIPTION_643` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_644` text COLLATE utf8_unicode_ci,
`DESCRIPTION_644` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_645` text COLLATE utf8_unicode_ci,
`DESCRIPTION_645` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_646` text COLLATE utf8_unicode_ci,
`DESCRIPTION_646` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_661` int(11) DEFAULT NULL,
`DESCRIPTION_661` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_666` longtext COLLATE utf8_unicode_ci,
`DESCRIPTION_666` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_675` text COLLATE utf8_unicode_ci,
`DESCRIPTION_675` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_676` text COLLATE utf8_unicode_ci,
`DESCRIPTION_676` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_677` text COLLATE utf8_unicode_ci,
`DESCRIPTION_677` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_678` longtext COLLATE utf8_unicode_ci,
`DESCRIPTION_678` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_679` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_679` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_680` int(11) DEFAULT NULL,
`DESCRIPTION_680` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_681` text COLLATE utf8_unicode_ci,
`DESCRIPTION_681` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_682` longtext COLLATE utf8_unicode_ci,
`DESCRIPTION_682` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_683` longtext COLLATE utf8_unicode_ci,
`DESCRIPTION_683` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_684` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_684` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_686` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_686` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_687` decimal(18,4) DEFAULT NULL,
`DESCRIPTION_687` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`PROPERTY_688` int(11) DEFAULT NULL,
`DESCRIPTION_688` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`IBLOCK_ELEMENT_ID`),
KEY `ix_perf_b_iblock_element_pr_1` (`PROPERTY_309`),
KEY `PROPERTY_290` (`PROPERTY_290`),
KEY `DESCRIPTION_284` (`DESCRIPTION_284`),
KEY `PROPERTY_104` (`PROPERTY_104`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Table structure for table `b_iblock_section`
--
CREATE TABLE IF NOT EXISTS `b_iblock_section` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`MODIFIED_BY` int(18) DEFAULT NULL,
`DATE_CREATE` datetime DEFAULT NULL,
`CREATED_BY` int(18) DEFAULT NULL,
`IBLOCK_ID` int(11) NOT NULL,
`IBLOCK_SECTION_ID` int(11) DEFAULT NULL,
`ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`GLOBAL_ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`SORT` int(11) NOT NULL DEFAULT '500',
`NAME` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`PICTURE` int(18) DEFAULT NULL,
`LEFT_MARGIN` int(18) DEFAULT NULL,
`RIGHT_MARGIN` int(18) DEFAULT NULL,
`DEPTH_LEVEL` int(18) DEFAULT NULL,
`DESCRIPTION` text COLLATE utf8_unicode_ci,
`DESCRIPTION_TYPE` char(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
`SEARCHABLE_CONTENT` text COLLATE utf8_unicode_ci,
`CODE` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`XML_ID` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`TMP_ID` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
`DETAIL_PICTURE` int(18) DEFAULT NULL,
`SOCNET_GROUP_ID` int(18) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `ix_iblock_section_1` (`IBLOCK_ID`,`IBLOCK_SECTION_ID`),
KEY `ix_iblock_section_depth_level` (`IBLOCK_ID`,`DEPTH_LEVEL`),
KEY `ix_iblock_section_left_margin` (`IBLOCK_ID`,`LEFT_MARGIN`,`RIGHT_MARGIN`),
KEY `ix_iblock_section_right_margin` (`IBLOCK_ID`,`RIGHT_MARGIN`,`LEFT_MARGIN`),
KEY `ix_iblock_section_code` (`IBLOCK_ID`,`CODE`),
KEY `CODE` (`CODE`),
KEY `XML_ID` (`XML_ID`),
KEY `TMP_ID` (`TMP_ID`),
KEY `ACTIVE` (`ACTIVE`),
KEY `GLOBAL_ACTIVE` (`GLOBAL_ACTIVE`),
KEY `IBLOCK_ID` (`IBLOCK_ID`),
KEY `IBLOCK_SECTION_ID` (`IBLOCK_SECTION_ID`),
KEY `LEFT_MARGIN` (`LEFT_MARGIN`),
KEY `RIGHT_MARGIN` (`RIGHT_MARGIN`),
KEY `DEPTH_LEVEL` (`DEPTH_LEVEL`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2610 ;
-- --------------------------------------------------------
--
-- Table structure for table `b_iblock_section_element`
--
CREATE TABLE IF NOT EXISTS `b_iblock_section_element` (
`IBLOCK_SECTION_ID` int(11) NOT NULL,
`IBLOCK_ELEMENT_ID` int(11) NOT NULL,
`ADDITIONAL_PROPERTY_ID` int(18) DEFAULT NULL,
UNIQUE KEY `ux_iblock_section_element` (`IBLOCK_SECTION_ID`,`IBLOCK_ELEMENT_ID`,`ADDITIONAL_PROPERTY_ID`),
KEY `UX_IBLOCK_SECTION_ELEMENT2` (`IBLOCK_ELEMENT_ID`),
KEY `IBLOCK_SECTION_ID` (`IBLOCK_SECTION_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Table structure for table `b_iblock_site`
--
CREATE TABLE IF NOT EXISTS `b_iblock_site` (
`IBLOCK_ID` int(18) NOT NULL,
`SITE_ID` char(2) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`IBLOCK_ID`,`SITE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Table structure for table `b_lang`
--
CREATE TABLE IF NOT EXISTS `b_lang` (
`LID` char(2) COLLATE utf8_unicode_ci NOT NULL,
`SORT` int(18) NOT NULL DEFAULT '100',
`DEF` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`ACTIVE` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Y',
`NAME` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`DIR` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`FORMAT_DATE` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`FORMAT_DATETIME` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`CHARSET` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`LANGUAGE_ID` char(2) COLLATE utf8_unicode_ci NOT NULL,
`DOC_ROOT` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`DOMAIN_LIMITED` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
`SERVER_NAME` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`SITE_NAME` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`EMAIL` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`WEEK_START` int(11) DEFAULT NULL,
`FORMAT_NAME` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`CULTURE_ID` int(11) DEFAULT NULL,
PRIMARY KEY (`LID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Есть запрос
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.
SELECT SQL_NO_CACHE BE.ID as ID,BE.NAME as NAME,BE.IBLOCK_ID as IBLOCK_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,BE.PREVIEW_PICTURE as PREVIEW_PICTURE, FPS0.PROPERTY_191 as PROPERTY_CML2_ARTICLE_VALUE, FPS0.DESCRIPTION_191 as PROPERTY_CML2_ARTICLE_DESCRIPTION, concat(BE.ID , ':' , 191) as PROPERTY_CML2_ARTICLE_VALUE_ID, FPS0.PROPERTY_164 as PROPERTY_BBD_OLD_PRICE_VALUE, FPS0.DESCRIPTION_164 as PROPERTY_BBD_OLD_PRICE_DESCRIPTION, concat(BE.ID , ':' , 164) as PROPERTY_BBD_OLD_PRICE_VALUE_ID,L.DIR as LANG_DIR, FPS0.PROPERTY_284 as PROPERTY_AVAILABLE_VALUE, FPS0.DESCRIPTION_284 as PROPERTY_AVAILABLE_DESCRIPTION, concat(BE.ID , ':' , 284) as PROPERTY_AVAILABLE_VALUE_ID, FPS0.PROPERTY_634 as PROPERTY_STORE_AVAILABLE_VALUE, FPS0.DESCRIPTION_634 as PROPERTY_STORE_AVAILABLE_DESCRIPTION, concat(BE.ID , ':' , 634) as PROPERTY_STORE_AVAILABLE_VALUE_ID, FPS0.PROPERTY_442 as PROPERTY_DISTR_SHIPMENT_CODE_VALUE, FPS0.DESCRIPTION_442 as PROPERTY_DISTR_SHIPMENT_CODE_DESCRIPTION, concat(BE.ID , ':' , 442) as PROPERTY_DISTR_SHIPMENT_CODE_VALUE_ID, FPS0.PROPERTY_364 as PROPERTY_BBD_CNT_ORDERS_VALUE, FPS0.DESCRIPTION_364 as PROPERTY_BBD_CNT_ORDERS_DESCRIPTION, concat(BE.ID , ':' , 364) as PROPERTY_BBD_CNT_ORDERS_VALUE_ID,BE.SORT as SORT,BE.CODE as CODE,BE.XML_ID as EXTERNAL_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID=L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_element_prop_s28 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
INNER JOIN (
SELECT DISTINCT BSE.IBLOCK_ELEMENT_ID
FROM b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE ((BS.ID IN (180, 1452, 1491, 1481, 1519, 1521, 1523, 1520, 2321, 1524, 1522, 1469, 2445, 2446, 2447, 2471, 1472, 1483, 1476, 2470, 1474, 1473, 1475, 1470, 1471, 2467, 2442, 2468, 2440, 1809, 2443, 2441, 2444, 2469, 2466, 1929, 1930, 2325, 1477, 1478, 1480, 1479, 1490, 1482, 1484, 1485, 310, 1488, 1486, 1487, 1525, 1526, 1963)))
) BES ON BES.IBLOCK_ELEMENT_ID = BE.ID
WHERE 1=1
AND (
((((BE.IBLOCK_ID = '28'))))
AND (EXISTS (
SELECT IBLOCK_ID FROM b_iblock_site WHERE IBLOCK_ID = B.ID
AND (((SITE_ID='s2')))
))
AND ((((BE.ACTIVE='Y'))))
AND ((((FPS0.PROPERTY_285 = '1'))))
AND ((( FPS0.PROPERTY_220 IS NULL OR NOT (FPS0.PROPERTY_220 = '84'))))
)
AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY BE.SORT
Результат запроса - около 2400 строк.
Так вот если выполнять без сортировки (ORDER BY) - запрос выполняется за 0.01 сек.
EXPLAIN:
Если же есть сортировка по полю b_iblock_element.SORT- запрос выполняется в 10 раз дольше - около 0.11 сек.
EXPLAIN:
Можно ли как нибудь не трогая сам запрос, а создавая/модифицируя только индексы добиться того чтобы на сортировку не тратился ещё один проход по набору данных.
|