Чтение онлайн

на главную - закладки

Жанры

MySQL: руководство профессионала

Паутов Алексей В.

Шрифт:

| 24 | LINESTRING(30290.2 15823,30290.2 15839.4,30273.4 15839.4, … |

| 25 | LINESTRING(30291.4 15866.2,30291.6 15882.4,30274.8 15882. … |

| 26 | LINESTRING(30291.6 15918.2,30291.6 15934.4,30275 15934.4, … |

| 249 | LINESTRING(30337.8 15938.6,30337.8 15946.8,30320.4 15946. … |

| 1 | LINESTRING(30250.4 15129.2,30248.8 15138.4,30238.2 15136. … |

| 2 | LINESTRING(30220.2 15122.8,3024.2 15137.8,30207.6 15136, … |

| 3 | LINESTRING(30179 15114.4,30176.6 15129.4,30167 15128,3016 … |

| 4 | LINESTRING(30155.2 15121.4,30140.4 15118.6,30142 15109,30 … |

| 5 | LINESTRING(30192.4 15085,30177.6 15082.2,30179.2 15072.4, … |

| 6 | LINESTRING(30244 15087,30229 15086.2,30229.4 15076.4,3024 … |

| 7 | LINESTRING(30200.6 15059.4,30185.6 15058.6,30186 15048.8, … |

| 10 | LINESTRING(30179.6 1504.8,30181 15002.8,30190.8 15003.6, … |

| 11 | LINESTRING(30154.2 15000.4,30168.6 15004.8,30166 15014.2, … |

| 13 | LINESTRING(30105 15065.8,30108.4 15050.8,30118 15053,3011 … |

| 154 | LINESTRING(30276.2 15143.8,30261.4 15141,30263 15131.4,30 … |

| 155 | LINESTRING(30269.8 15084,30269.4 15093.4,30258.6 15093,30 … |

| 157 | LINESTRING(30128.2 15011,30113.2 15010.2,30113.6 15000.4, … |

+-----+---------------------------------------------------------------+

20 rows in set (0.00 sec)

Использование EXPLAIN

показывает, каким способом этот запрос выполнен:mysql> SET @poly = 'Polygon((30000 15000, 31000 15000,

– > 31000 16000, 30000 16000, 30000 15000))';

mysql> EXPLAIN SELECT fid, AsText(g) FROM geom WHERE

– > MBRContains(GeomFromText(@poly), g)\G

*************************** 1. row ***************************

id: 1

select_type: SIMPLE

table: geom

type: range

possible_keys: g

key: g

key_len: 32

ref: NULL

rows: 50

Extra: Using where

1 row in set (0.00 sec)

Проверьте, что случилось бы без пространственного индекса:mysql> SET @poly = 'Polygon((30000 15000, 31000 15000,

– > 31000 16000, 30000 16000, 30000 15000))';

mysql> EXPLAIN SELECT fid,AsText(g) FROM g IGNORE INDEX (g) WHERE

– > MBRContains(GeomFromText(@poly), g)\G

*************************** 1. row ***************************

id: 1

select_type: SIMPLE

table: geom

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 32376

Extra: Using where

1 row in set (0.00 sec)

Выполнение инструкции SELECT без пространственного индекса выдает тот же самый результат, но заставляет время выполнения повышаться с 0.00 до 0.46 секунды:mysql> SET @poly = 'Polygon((30000 15000, 31000 15000,

– > 31000 16000, 30000 16000, 30000 15000))';

mysql> SELECT fid, AsText(g) FROM geom IGNORE INDEX (g) WHERE

– > MBRContains(GeomFromText(@poly), g);

+-----+---------------------------------------------------------------+

| fid | AsText(g) |

+-----+---------------------------------------------------------------+

| 1 | LINESTRING(30250.4 15129.2,30248.8 15138.4,30238.2 15136. … |

| 2 | LINESTRING(30220.2 15122.8,3024.2 15137.8,30207.6 15136, … |

| 3 | LINESTRING(30179 15114.4,30176.6 15129.4,30167 15128,3016 … |

| 4 | LINESTRING(30155.2 15121.4,30140.4 15118.6,30142 15109,30 … |

| 5 | LINESTRING(30192.4 15085,30177.6 15082.2,30179.2 15072.4, … |

| 6 | LINESTRING(30244 15087,30229 15086.2,30229.4 15076.4,3024 … |

| 7 | LINESTRING(30200.6 15059.4,30185.6 15058.6,30186 15048.8, … |

| 10 | LINESTRING(30179.6 1504.8,30181 15002.8,30190.8 15003.6, … |

| 11 | LINESTRING(30154.2 15000.4,30168.6 15004.8,30166 15014.2, … |

| 13 | LINESTRING(30105 15065.8,30108.4 15050.8,30118 15053,3011 … |

| 21 | LINESTRING(30350.4 15828.8,30350.6 15845,30333.8 15845,30 … |

| 22 | LINESTRING(30350.6 15871.4,30350.6 15887.8,30334 15887.8, … |

| 23 | LINESTRING(30350.6 15914.2,30350.6 15930.4,30334 15930.4, … |

| 24 | LINESTRING(30290.2 15823,30290.2 15839.4,30273.4 15839.4, … |

| 25 | LINESTRING(30291.4 15866.2,30291.6 15882.4,30274.8 15882. … |

| 26 | LINESTRING(30291.6 15918.2,30291.6 15934.4,30275 15934.4, … |

| 154 | LINESTRING(30276.2 15143.8,30261.4 15141,30263 15131.4,30 … |

| 155 | LINESTRING(30269.8 15084,30269.4 15093.4,30258.6 15093,30 … |

| 157 | LINESTRING(30128.2 15011,30113.2 15010.2,30113.6 15000.4, … |

| 249 | LINESTRING(30337.8 15938.6,30337.8 15946.8,30320.4 15946. … |

+-----+---------------------------------------------------------------+

20 rows in set (0.46 sec)

В

будущих выпусках пространственные индексы могут также использоваться для оптимизации других функций.

4.7. MySQL: согласованность и совместимость

MySQL еще не выполняет следующие свойства GIS:

Дополнительные просмотры метаданных.

Спецификация OpenGIS предлагает несколько дополнительных просмотров метаданных. Например, просмотр системы GEOMETRY_COLUMNS содержит описание столбцов геометрии, одна строка для каждого столбца геометрии в базе данных.

Функция OpenGIS Length на LineString и MultiLineString в настоящее время должна быть вызвана в MySQL как GLength

Поделиться:
Популярные книги

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Сумеречный Стрелок 4

Карелин Сергей Витальевич
4. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 4

Все не так, как кажется

Юнина Наталья
Любовные романы:
современные любовные романы
7.70
рейтинг книги
Все не так, как кажется

Архил...?

Кожевников Павел
1. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...?

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII

Дворянская кровь

Седой Василий
1. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Дворянская кровь

Мимик нового Мира 4

Северный Лис
3. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 4

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

Без шансов

Семенов Павел
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Без шансов

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5