|
|
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Как правельно хранить данные о почтовом индексе, городах, номерах домов. Есть таблица a_location с полями city,postcode,street,house. Очень часто выполняется запрос вида: Код: plaintext 1. 2. 3. 4. Cейчас в таблице около 5 млн записей - после внесения всех данных будет около 12 млн. Запросы уже выполняются невероятно долго (5-7 мин). Вопрос - может есть способ хранить эти данные как-то по другому или вобще может кто сталкивался с такой задачей и как ее решал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2007, 12:03 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Индексы создать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2007, 12:11 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. все кроме последнего UNIQUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2007, 12:26 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
я могу ошибацо, но, возможно, стоит задумаццо о составном индексе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2007, 15:21 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
nedbaКак правельно хранить данные о почтовом индексе, городах, номерах домов. Есть таблица a_location с полями city,postcode,street,house. Очень часто выполняется запрос вида: Код: plaintext 1. 2. 3. 4. Cейчас в таблице около 5 млн записей - после внесения всех данных будет около 12 млн. Запросы уже выполняются невероятно долго (5-7 мин). Вопрос - может есть способ хранить эти данные как-то по другому или вобще может кто сталкивался с такой задачей и как ее решал? Есть готовый софт (ибо вам еще проверку на корректность адреса делать и т.д. дедубликацию и много хитростей ) в принципе сократить можно до 300000-400000 (30000-40000 для домов) записей всю вашу базу я имею ввиду способ хранения и даже с учетом нечеткого поиска это будет <1-2 секунд Сейчас мы работаем с базами от 100 000 000 адресов на простом писюке и как то никаких тормозов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 23:26 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
bug_scorobey nedbaКак правельно хранить данные о почтовом индексе, городах, номерах домов. Есть таблица a_location с полями city,postcode,street,house. Очень часто выполняется запрос вида: Код: plaintext 1. 2. 3. 4. Cейчас в таблице около 5 млн записей - после внесения всех данных будет около 12 млн. Запросы уже выполняются невероятно долго (5-7 мин). Вопрос - может есть способ хранить эти данные как-то по другому или вобще может кто сталкивался с такой задачей и как ее решал? Есть готовый софт (ибо вам еще проверку на корректность адреса делать и т.д. дедубликацию и много хитростей ) в принципе сократить можно до 300000-400000 (30000-40000 для домов) записей всю вашу базу я имею ввиду способ хранения и даже с учетом нечеткого поиска это будет <1-2 секунд Сейчас мы работаем с базами от 100 000 000 адресов на простом писюке и как то никаких тормозов да и пока все это на sql2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 23:27 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
У нас бы все решилось использованием битмап индекса... Компания разработчик утверждает что получается ускорение в несколько раз. ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2007, 08:47 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Если так долго выполняются запросы, то у вас либо не используются индексы, либо это выполняется на коммуникаторе Наверное все же первое :) -- Tygra's -- Мои фотогалереи тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 09:21 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Я думаю, проблема ваших запросов в том, что вы действуете функцией UPPER() на столбцы . Скажем в SQL Server такой запрос будет гарантировано приводить к полному просмотру всей таблицы, даже при наличии индекса по city и street. Я вижу такие варианты решения: 1. Найти правильный способ сравнения без учета регистра (не используя функцию UPPER()). Например в SQL Server это делается с помошью Collation. 2. Хранить названия городов и улиц уже преобразованными к верхенму (или нижнему) регистру. 3. Создать вычисляемые столбцы UPPER(city) и UPPER(street) и построить на них индекс. Вот как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 20:41 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
авторда и пока все это на sql2005 Однозначно collation! Cyrillic_General_CI_AS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 20:44 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Senja авторда и пока все это на sql2005 Однозначно collation! Cyrillic_General_CI_AS да госопода а чем плох Cyrillic_General_CI_AS ------------ binary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 21:40 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
имею ввиду на всю базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 21:41 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
А никто не задумывался, что названия городов хорошо бы вынести в справочник (как, впрочем, и улиц)? Если города набиваются вручную, то я уверен, что из 5 млн несколько десятков тысяч живут в "Моксва", "Мсква", "Мовска", не говоря уже об улицах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 12:02 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherА никто не задумывался, что названия городов хорошо бы вынести в справочник (как, впрочем, и улиц)? Если города набиваются вручную, то я уверен, что из 5 млн несколько десятков тысяч живут в "Моксва", "Мсква", "Мовска", не говоря уже об улицах... и еще кто нибудь пытался разложить адреса РФ в виде дерева очень любопытная картина получается а вообще то почта россии и мнс (кладр) обещают сделать к концу 2008 года крутую эталонную базу соображения есть у кого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 12:07 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
nedbaКак правельно хранить данные о почтовом индексе, городах, номерах домов. Есть таблица a_location с полями city,postcode,street,house. Очень часто выполняется запрос вида: Код: plaintext 1. 2. 3. 4. Cейчас в таблице около 5 млн записей - после внесения всех данных будет около 12 млн. Запросы уже выполняются невероятно долго (5-7 мин). Вопрос - может есть способ хранить эти данные как-то по другому или вобще может кто сталкивался с такой задачей и как ее решал? Уважаемый не дба готов вам помочь поправить ситуацию не корысти ради а шевеления мозгов для пишите дам вам доступ к своему удаленному серваку на нем и подумаем что можно сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 12:09 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
2 bug_scorobey bug_scorobeyУважаемый не дба готов вам помочь поправить ситуацию не корысти ради а шевеления мозгов для пишите дам вам доступ к своему удаленному серваку на нем и подумаем что можно сделать За предложение помощи спасибо! Но тут встает вопрос о неразглашении данных. А такой документ подписан. Адреса обрабатываются не только для России, но и для многих стран Европы. По тому вопрос с доп справочниками, как предлагал Cane Cat Fisher, не может быть рассмотрен. Да, в столицах действительно наибольшее кол-во адресов - но пригороды составляют не менее 50-60 % объектов. Индексы жутко не эффективны. Сменить колейшенс для UTF-8 такой вариант был бы интересный. Но составных из (привожу для примера) французского, португальского, белорусского и польского - я не встречал. Да и базу в 40-50 Gb конвертить придется долго даже на мощном сервере. 2 bug_scorobey bug_scorobeyЕсть готовый софт (ибо вам еще проверку на корректность адреса делать и т.д. дедубликацию и много хитростей ) в принципе сократить можно до 300000-400000 (30000-40000 для домов) записей всю вашу базу я имею ввиду способ хранения и даже с учетом нечеткого поиска это будет <1-2 секунд Сейчас мы работаем с базами от 100 000 000 адресов на простом писюке и как то никаких тормозов Можно ли узнать название софта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 13:20 |
|
||
|
как правельно хранить данные о почтовом индексе, городах, номерах домов
|
|||
|---|---|---|---|
|
#18+
nedba2 bug_scorobey bug_scorobeyУважаемый не дба готов вам помочь поправить ситуацию не корысти ради а шевеления мозгов для пишите дам вам доступ к своему удаленному серваку на нем и подумаем что можно сделать За предложение помощи спасибо! Но тут встает вопрос о неразглашении данных. А такой документ подписан. Адреса обрабатываются не только для России, но и для многих стран Европы. По тому вопрос с доп справочниками, как предлагал Cane Cat Fisher, не может быть рассмотрен. Да, в столицах действительно наибольшее кол-во адресов - но пригороды составляют не менее 50-60 % объектов. Индексы жутко не эффективны. Сменить колейшенс для UTF-8 такой вариант был бы интересный. Но составных из (привожу для примера) французского, португальского, белорусского и польского - я не встречал. Да и базу в 40-50 Gb конвертить придется долго даже на мощном сервере. 2 bug_scorobey bug_scorobeyЕсть готовый софт (ибо вам еще проверку на корректность адреса делать и т.д. дедубликацию и много хитростей ) в принципе сократить можно до 300000-400000 (30000-40000 для домов) записей всю вашу базу я имею ввиду способ хранения и даже с учетом нечеткого поиска это будет <1-2 секунд Сейчас мы работаем с базами от 100 000 000 адресов на простом писюке и как то никаких тормозов Можно ли узнать название софта? отправил вам на мыло а то надоели обвинения в рекламе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34509143&tid=1544314]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 378ms |

| 0 / 0 |
