SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#51 19.11.2012 23:00:55

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

федя написал:

Ну да если имется задача автоматически определить, что к нам зашла единственная жительница Камеруна говорящая на языке БИКЬЯ, то и 40 знаков после запятой не хватит

Фёдор, вы не внимательно прочитали мой ответ, ваши шутки стреляют мимо, так как вы не о том шутите.


Скажи миру - НЯ!

Неактивен

 

#52 20.11.2012 09:30:50

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

animegirl написал:

Фёдор, вы не внимательно прочитали мой ответ, ваши шутки стреляют мимо, так как вы не о том шутите.

Зря обижаетесь smile

Если у вас виртуальная задача для "математического факультета университета", то можно и до 8 знака долготу учитывать, если это задача из реального мира, то вам придется столкнутся с таким понятием как точность планов местности и наукой с названием метрология (точность измерения).

Просто я лет пять-восемь назад занимался разработкой систем которые "отображают планы местности"...
И "пытался" загрузить данные из пространственной БД в реляционную, если точнее то в mysql.
Так вот ... Все гео-данные которые вы получите из открытых источников будут имееть точность в очень широком пределе.
Из за "реперов", из-за того что "планы местности" определенной точности запрещены в РФ, из-за еще много чего...

Можете мне сказать как в вашей БД выглядит результат такого запроса:
  Кол-во "region_id" для "country_id" равного Россия ?

При точности 8 знаков, (0-3 метра, в зависимости от близости к полюсу)  только для описания границы между РФ и Китаем вам потребуется внести
   4200 км/1 метр = 4 млн записей в таблицу регионов...
Понятное дело, что часть границы описывается в виде "идет по такой то широте", и вашей таблице будет записан один большой прямоугольник.
Но другая часть описана вот так- "по берегам реки АМУР".
А река амур совершено не желает плыть паралельно широте/долготе. smile

ps.
Ну да ладно, тут тема оптимизация mysql, поэтому предложу Вам на рассмотрение другой вариант:
Пользователь перемещается по карте и регулярно передает новую координату 25.111, 25.112, ....

select * from (select * from region where X>25 and X<26) where X>25.1111111 and X < 25.1211111
select * from (select * from region where X>25 and X<26) where X>25.1121111 and X < 25.1311111
select * from (select * from region where X>25 and X<26) where X>25.1131111 and X < 25.1411111
select * from (select * from region where X>25 and X<26) where X>25.1141111 and X < 25.1511111

Те внутрении select всегда с округленными даннными и будет закэширован.

Неактивен

 

#53 20.11.2012 19:15:14

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

федя написал:

Можете мне сказать как в вашей БД выглядит результат такого запроса:
  Кол-во "region_id" для "country_id" равного Россия ?

http://ru.wikipedia.org/wiki/Федер … оссии
83


Скажи миру - НЯ!

Неактивен

 

#54 20.11.2012 19:19:39

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

федя написал:

При точности 8 знаков, (0-3 метра, в зависимости от близости к полюсу)  только для описания границы между РФ и Китаем вам потребуется внести
   4200 км/1 метр = 4 млн записей в таблицу регионов...

Я пошла более простым путём. Мне нужны только 4 точки )
У меня нету цели вымерять миллиметры на границах, мне нужна точность в позиции точек, а не в рамках границ.


Скажи миру - НЯ!

Неактивен

 

#55 20.11.2012 19:41:06

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

федя написал:

Ну да ладно, тут тема оптимизация mysql, поэтому предложу Вам на рассмотрение другой вариант:
Пользователь перемещается по карте и регулярно передает новую координату 25.111, 25.112, ....

select * from (select * from region where X>25 and X<26) where X>25.1111111 and X < 25.1211111
select * from (select * from region where X>25 and X<26) where X>25.1121111 and X < 25.1311111
select * from (select * from region where X>25 and X<26) where X>25.1131111 and X < 25.1411111
select * from (select * from region where X>25 and X<26) where X>25.1141111 and X < 25.1511111

Те внутрении select всегда с округленными даннными и будет закэширован.

Интересная мысль, надо подумать.
Но смотрите, если взять в пример мегаполюсы, туже Москву, таким запросом там будет 5М строк, это не перебор ли?
В том плане, что 5М строк, это сколько 3-5ГБ данных будет, это постоянно держать в кэше, а если оно не в кэше, то выбирать, база не повесится от такого?


Скажи миру - НЯ!

Неактивен

 

#56 20.11.2012 19:43:46

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

И да, можно поточнее, про запрет на Геоданные в РФ если можно?


Скажи миру - НЯ!

Неактивен

 

#57 20.11.2012 19:56:25

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ускорит или замедлит?

федя написал:

Ну да ладно, тут тема оптимизация mysql, поэтому предложу Вам на рассмотрение другой вариант:
Пользователь перемещается по карте и регулярно передает новую координату 25.111, 25.112, ....

select * from (select * from region where X>25 and X<26) where X>25.1111111 and X < 25.1211111
select * from (select * from region where X>25 and X<26) where X>25.1121111 and X < 25.1311111
select * from (select * from region where X>25 and X<26) where X>25.1131111 and X < 25.1411111
select * from (select * from region where X>25 and X<26) where X>25.1141111 and X < 25.1511111

Те внутрении select всегда с округленными даннными и будет закэширован.

В кэш запросов MySQL всегда попадает результат выполнения запроса целиком, результаты выполнения подзапросов не кэшируются.

Хорошое описание кэширования запросов в MySQL

Неактивен

 

#58 20.11.2012 21:51:09

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ускорит или замедлит?

О сравнении производительности между enum и varchar - http://www.mysqlperformanceblog.com/200 … is-faster/
Причем в тестовых данных замена varchar на enum серьезно сокращала длину строки, и то разница оказалась невелика.

Кроме того у enum есть проблема с добавлением/изменением определения поля. Это делается только через alter table и, не смотря на то, что реально данные не затрагиваются - создание копии исходной таблицы,... Хотя в последних версиях вроде как поправили эту фичу (или мне только так кажется).

Относительно горы бесполезных if замечание верное, но тут неясно зачем они вообще нужны. Если исходя из каких-то настроек пользователя ему нужна определенная сортировка результата, то можно добавить order by field()

Недостаток этой конструкции в том, что у нас будет filesort. И если приоритет языков всегда один и тот же и запрос позволяет при сортировке использовать индексное поле, то можно сделать enum, в котором на первых местах указать приоритетные языки (ru,en,fr, все остальные), чтобы избавиться от filesort.
Но здесь не тот случай, так как главной таблицей в объединении скорее всего будет вторая с отбором по координатам.

Неактивен

 

#59 20.11.2012 22:24:40

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

Во первый да, двигаемся от координат.
Во вторых первый язык, там написано ur, это я оставила как заглушку,а  вообще там будет язык юзера.


Скажи миру - НЯ!

Неактивен

 

#60 20.11.2012 23:20:59

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

animegirl написал:

И да, можно поточнее, про запрет на Геоданные в РФ если можно?

Это обширная тема smile

Если кратко, то
  - никогда нельзя писать "карта" надо писать "эскиз местности" или "план местности"
  - планы местности до определенного масштаба считаются секретными
  - нельзя рисовать долготу/широту - так как после этого план местности автоматически становится картой
  - ни в коем случае нельзя указывать высоту над уровнем моря, чтобы "ракеты" к нам вражеские не могли на низкой высоте прилететь smile
  - есть "районы страны" которые нельзя детализировать более чем "серым квадратом" с подписью промышленная территория

Неактивен

 

#61 21.11.2012 01:03:27

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

А как тогда работают яндекс мапс гугле мапс и прочие?


Скажи миру - НЯ!

Неактивен

 

#62 21.11.2012 08:17:29

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

animegirl написал:

А как тогда работают яндекс мапс гугле мапс и прочие?

А вот так вот:

http://legal.yandex.ru/maps_mobile_agreement/
5.8. Программа предоставляет Пользователю возможность использования дополнительной функции — слоя «Народная карта». Пользователь настоящим уведомлен, понимает и соглашается, что полученная в составе данного слоя схема, основанная на пользовательской информации сервиса «Яндекс.Народная карта», не является картографическим произведением в смысле Федерального закона от 26.12.1995 № 209-ФЗ «О геодезии и картографии». Правообладатель не гарантирует геометрическую точность и соблюдение картографической проекции схемы.

Неактивен

 

#63 21.11.2012 12:03:43

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Ускорит или замедлит?

федя написал:

animegirl написал:

А как тогда работают яндекс мапс гугле мапс и прочие?

А вот так вот:

это про народную карту, которую составляют сами пользователи Яндекса. Яндекс разумно предупреждает, что данные рисунки пользователей картой не являются, т.к. пользователи, как и в википедии, могут нарисовать что угодно. Вас спрашивают как работают карты самого яндекса, гугла и т.п.

Приведите пожалуйста пруфлинк на те запреты о которых вы пишете, особенно насчет запрета на слово карта и "эскиз местности"

Неактивен

 

#64 21.11.2012 18:48:02

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

Shopen написал:

федя написал:

animegirl написал:

А как тогда работают яндекс мапс гугле мапс и прочие?

А вот так вот:

это про народную карту, которую составляют сами пользователи Яндекса. Яндекс разумно предупреждает, что данные рисунки пользователей картой не являются, т.к. пользователи, как и в википедии, могут нарисовать что угодно. Вас спрашивают как работают карты самого яндекса, гугла и т.п.

Приведите пожалуйста пруфлинк на те запреты о которых вы пишете, особенно насчет запрета на слово карта и "эскиз местности"

a) пруфлинк = 209-ФЗ ... Вам никто не запрещает использовать слово "карта", только лицензию получите и можете писать КАРТА. А если получили лицензию и делаете карты, то будьте добры по первому требованию передавать карты в "реестр" и еще много чего... почитайте закон... 

Именно поэтому:
http://api.yandex.ru/maps/solutions/?p=about
ВИДИМ:
.... это сотни подробных схем городов, карта мира, спутниковые снимки планеты и Народная карта.
СХЕМЫ городов !!!! - понятно ?

http://law.2gis.ru/copyright/
ВИДИМ:
цифровой ПЛАН !!!! - понятно ?

б) все что написано выше знаю из "первых рук"

в) я и так много лишнего сказал, вот тут есть "разбор терминов":
http://web-gis.org/tag/%d0%bd%d0%b0%d1% … %81%d0%b0/

Отредактированно федя (21.11.2012 18:49:07)

Неактивен

 

#65 21.11.2012 19:05:36

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

В общем читайте... читайте... читайте...
http://www.bestpravo.ru/rossijskoje/ad- … ty/m8w.htm


http://gis-lab.info/docs/legislation.html

4. Объекты местности (элементы содержания) топографических карт и планов, не включенные в Перечень, разрешаются к показу на топографических картах и планах при условии обеспечения их планового положения не точнее, чем на топографической карте масштаба 1:100000 в государственных системах координат и изображения рельефа местности горизонталями с высотой сечения 20 метров и более.

5. Топографические карты масштаба 1:500000, 1:1000000 могут быть открыто опубликованы без ограничений.
Карты масштаба 1:200000 и крупнее должны иметь произвольную разграфку, отличную от государственной.

II. Объекты местности и элементы содержания топографических карт и планов, запрещенные для открытого опубликования:
12. Характеристики объектов местности:
специализация промышленных объектов (могут сопровождаться подписью "промзона"),

ps.
Sorry за оффтопик не в тему сайта...

Неактивен

 

#66 21.11.2012 19:51:13

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Ускорит или замедлит?

И тем не менее Яндекс.Карты и "2ГИС — бесплатный справочник организаций с картой города" (http://www.2gis.ru/). И заметьте я это пишу без кучи восклицательных знаков, хотя цитаты с тех же адресов. Просто вы выдернули то, что вам больше нравится. Не придумывайте лишнего. Animegirl напишет, что не занимается картографической деятельностью, всё as-is и на этом все ее потенциальные, описанные вами проблемы с ее картами закончатся.

И вообще может она игру пишет.

P.S. думаю хватит оффтопить

Неактивен

 

#67 21.11.2012 20:34:21

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

У дубльгиса есть (была) лицензия (ФСГиК номер ЗСГ00107)

ps.
я тоже скоро научусь выделять bold-ом и буду писать по принятым на этом форуме правилам.. wink

Неактивен

 

#68 21.11.2012 20:49:17

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Ускорит или замедлит?

если есть лицензия, то почему "цифровой ПЛАН !!!! - понятно ?"

Неактивен

 

#69 22.11.2012 23:12:06

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Ускорит или замедлит?

vasya написал:

О сравнении производительности между enum и varchar - http://www.mysqlperformanceblog.com/200 … is-faster/
Причем в тестовых данных замена varchar на enum серьезно сокращала длину строки, и то разница оказалась невелика.

Почитываю я иногда этого уважаемого автора, но люблю проверять сам... Особенно не на пустой инсталяции, а на каком-нить загруженном продакшене

В общем вот тут я решил провести эксперимент:
http://sqlinfo.ru/forum/viewtopic.php?id=6259


ps.
А тописквотеру хочу посоветовать все же в БД пространственную залить...
В 10 раз быстрее будет....
Правда я так и не понял, если вся РФ это 83 прямоугольника, то откуда миллионы записей...

Неактивен

 

#70 25.11.2012 08:15:26

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Ускорит или замедлит?

1. Мир на РФ не заканчивается
2. Мир это не только Регионы, это ещё и города
3. В мире говорят не только на 1 языке
х. Перемножьте


Скажи миру - НЯ!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson