- Notifications
You must be signed in to change notification settings - Fork5
Commit48c7d9f
committed
Improve GIN indexscan cost estimation.
The better estimate requires more statistics than we previously stored:in particular, counts of "entry" versus "data" pages within the index,as well as knowledge of the number of distinct key values. We collectthis information during initial index build and update it during VACUUM,storing the info in new fields on the index metapage. No initdb isrequired because these fields will read as zeroes in a pre-existingindex, and the new gincostestimate code is coded to behave (reasonably)sanely if they are zeroes.Teodor Sigaev, reviewed by Jan Urbanski, Tom Lane, and Itagaki Takahiro.1 parentcd0e825 commit48c7d9f
File tree
10 files changed
+561
-42
lines changed- src
- backend
- access/gin
- utils/adt
- include/access
10 files changed
+561
-42
lines changedLines changed: 22 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
268 | 268 |
| |
269 | 269 |
| |
270 | 270 |
| |
| 271 | + | |
| 272 | + | |
| 273 | + | |
271 | 274 |
| |
272 | 275 |
| |
273 | 276 |
| |
274 |
| - | |
| 277 | + | |
275 | 278 |
| |
276 | 279 |
| |
277 | 280 |
| |
| |||
330 | 333 |
| |
331 | 334 |
| |
332 | 335 |
| |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
333 | 345 |
| |
334 | 346 |
| |
335 | 347 |
| |
| |||
381 | 393 |
| |
382 | 394 |
| |
383 | 395 |
| |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
384 | 405 |
| |
385 | 406 |
| |
386 | 407 |
| |
|
Lines changed: 8 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
592 | 592 |
| |
593 | 593 |
| |
594 | 594 |
| |
| 595 | + | |
595 | 596 |
| |
596 |
| - | |
| 597 | + | |
597 | 598 |
| |
| 599 | + | |
598 | 600 |
| |
599 | 601 |
| |
600 | 602 |
| |
| |||
603 | 605 |
| |
604 | 606 |
| |
605 | 607 |
| |
| 608 | + | |
606 | 609 |
| |
607 | 610 |
| |
608 | 611 |
| |
| |||
628 | 631 |
| |
629 | 632 |
| |
630 | 633 |
| |
631 |
| - | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
632 | 637 |
| |
633 | 638 |
| |
634 | 639 |
| |
| |||
653 | 658 |
| |
654 | 659 |
| |
655 | 660 |
| |
656 |
| - | |
| 661 | + | |
657 | 662 |
| |
658 | 663 |
| |
659 | 664 |
| |
|
Lines changed: 9 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
659 | 659 |
| |
660 | 660 |
| |
661 | 661 |
| |
662 |
| - | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
663 | 665 |
| |
| 666 | + | |
664 | 667 |
| |
665 | 668 |
| |
666 | 669 |
| |
| |||
669 | 672 |
| |
670 | 673 |
| |
671 | 674 |
| |
672 |
| - | |
673 |
| - | |
674 |
| - | |
675 |
| - | |
676 |
| - | |
677 |
| - | |
| 675 | + | |
678 | 676 |
| |
679 | 677 |
| |
680 | 678 |
| |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
681 | 683 |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
789 | 789 |
| |
790 | 790 |
| |
791 | 791 |
| |
792 |
| - | |
| 792 | + | |
793 | 793 |
| |
794 | 794 |
| |
795 | 795 |
| |
| |||
823 | 823 |
| |
824 | 824 |
| |
825 | 825 |
| |
826 |
| - | |
| 826 | + | |
827 | 827 |
| |
828 | 828 |
| |
829 | 829 |
| |
|
Lines changed: 41 additions & 15 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
27 | 27 |
| |
28 | 28 |
| |
29 | 29 |
| |
| 30 | + | |
30 | 31 |
| |
31 | 32 |
| |
32 | 33 |
| |
| |||
97 | 98 |
| |
98 | 99 |
| |
99 | 100 |
| |
100 |
| - | |
101 |
| - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
102 | 105 |
| |
103 | 106 |
| |
104 | 107 |
| |
| |||
128 | 131 |
| |
129 | 132 |
| |
130 | 133 |
| |
131 |
| - | |
| 134 | + | |
132 | 135 |
| |
133 |
| - | |
| 136 | + | |
134 | 137 |
| |
135 | 138 |
| |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
136 | 143 |
| |
137 | 144 |
| |
138 | 145 |
| |
139 | 146 |
| |
140 | 147 |
| |
141 | 148 |
| |
142 | 149 |
| |
| 150 | + | |
| 151 | + | |
| 152 | + | |
143 | 153 |
| |
144 | 154 |
| |
145 | 155 |
| |
146 | 156 |
| |
147 | 157 |
| |
148 |
| - | |
| 158 | + | |
149 | 159 |
| |
150 | 160 |
| |
151 | 161 |
| |
152 | 162 |
| |
153 | 163 |
| |
154 | 164 |
| |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
155 | 169 |
| |
156 | 170 |
| |
157 | 171 |
| |
| |||
174 | 188 |
| |
175 | 189 |
| |
176 | 190 |
| |
177 |
| - | |
178 |
| - | |
| 191 | + | |
| 192 | + | |
179 | 193 |
| |
180 | 194 |
| |
181 | 195 |
| |
182 | 196 |
| |
183 | 197 |
| |
184 |
| - | |
| 198 | + | |
| 199 | + | |
185 | 200 |
| |
186 | 201 |
| |
187 | 202 |
| |
| |||
195 | 210 |
| |
196 | 211 |
| |
197 | 212 |
| |
198 |
| - | |
| 213 | + | |
| 214 | + | |
199 | 215 |
| |
200 | 216 |
| |
201 | 217 |
| |
202 | 218 |
| |
203 | 219 |
| |
204 |
| - | |
| 220 | + | |
205 | 221 |
| |
206 | 222 |
| |
207 | 223 |
| |
| |||
260 | 276 |
| |
261 | 277 |
| |
262 | 278 |
| |
263 |
| - | |
| 279 | + | |
| 280 | + | |
264 | 281 |
| |
265 | 282 |
| |
266 | 283 |
| |
| |||
292 | 309 |
| |
293 | 310 |
| |
294 | 311 |
| |
| 312 | + | |
| 313 | + | |
295 | 314 |
| |
296 | 315 |
| |
297 | 316 |
| |
| |||
331 | 350 |
| |
332 | 351 |
| |
333 | 352 |
| |
334 |
| - | |
335 |
| - | |
| 353 | + | |
| 354 | + | |
336 | 355 |
| |
337 | 356 |
| |
338 | 357 |
| |
| |||
367 | 386 |
| |
368 | 387 |
| |
369 | 388 |
| |
370 |
| - | |
| 389 | + | |
| 390 | + | |
371 | 391 |
| |
372 | 392 |
| |
373 | 393 |
| |
374 | 394 |
| |
375 | 395 |
| |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
376 | 402 |
| |
377 | 403 |
| |
378 | 404 |
| |
| |||
401 | 427 |
| |
402 | 428 |
| |
403 | 429 |
| |
404 |
| - | |
| 430 | + | |
405 | 431 |
| |
406 | 432 |
| |
407 | 433 |
| |
|
0 commit comments
Comments
(0)