The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Nikifor emailИскать по авторуВ закладки on 14-Мрт-04, 15:35  (MSK)
Здравствуйте!
Какие существуют способы физически отсортировать записи в таблице MySQL?
Можно ли это сделать с из PHP скрипта?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 15-Мрт-04, 15:31  (MSK)
сделай дамп в нужном порядке а затем вставь.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Beut emailИскать по авторуВ закладки on 16-Мрт-04, 03:33  (MSK)
>сделай дамп в нужном порядке а затем вставь.

А зачем их физически сортировать???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Andrew emailИскать по авторуВ закладки on 16-Мрт-04, 14:45  (MSK)
>>сделай дамп в нужном порядке а затем вставь.
>
>А зачем их физически сортировать???

Что значит физически отсортировать базы??????????
Совершенно безразлично как они там лежат, mysql тебе их отдаст так как тебе надо, вплоть до того, что сама соберет данные из разных таблиц в один запрос, из чего потом можно сделать 1 массив....
а на физическом уровне MySQL лучше не лазить....... эт тебе не текстовый файл

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 16-Мрт-04, 15:12  (MSK)
>>>сделай дамп в нужном порядке а затем вставь.
>>
>>А зачем их физически сортировать???

Для скорости. Подобная вещь может повысить скорость выполнения запросов. На больших базах это помогает.

>Что значит физически отсортировать базы??????????
>Совершенно безразлично как они там лежат, mysql тебе их отдаст так как
>тебе надо, вплоть до того, что сама соберет данные из разных
>таблиц в один запрос, из чего потом можно сделать 1 массив....

Да, но скорость, скорость... Покрути-ка гиговые таблички - никакой кеш не спасет.

>а на физическом уровне MySQL лучше не лазить....... эт тебе не текстовый
>файл

Ну не кто же не предлагает править вручную файлы БД.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от MeLLowD Искать по авторуВ закладки on 16-Мрт-04, 18:18  (MSK)
>>>>сделай дамп в нужном порядке а затем вставь.
>>>
>>>А зачем их физически сортировать???
>
>Для скорости. Подобная вещь может повысить скорость выполнения запросов. На больших базах
>это помогает.
>
>>Что значит физически отсортировать базы??????????
>>Совершенно безразлично как они там лежат, mysql тебе их отдаст так как
>>тебе надо, вплоть до того, что сама соберет данные из разных
>>таблиц в один запрос, из чего потом можно сделать 1 массив....
>
>Да, но скорость, скорость... Покрути-ка гиговые таблички - никакой кеш не спасет.
>
>
>>а на физическом уровне MySQL лучше не лазить....... эт тебе не текстовый
>>файл
>
>Ну не кто же не предлагает править вручную файлы БД.


а индексирование типа нельзя использовать? :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Andrew emailИскать по авторуВ закладки on 16-Мрт-04, 18:35  (MSK)
Могу показать пример базы, весящей 790 мегов, из 8 000 000 наименований, запрос обрабатывает за 0,02 секунды, на Целероне 1100...... без напрягов, поиск по каталогу запчастей......... надо?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 16-Мрт-04, 19:57  (MSK)
Кстати, а что за база запчастей? Не продается ли? Один мой клиент очень ищет себе.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 16-Мрт-04, 19:53  (MSK)
>а индексирование типа нельзя использовать? :)

Естественно надо использовать. Но при упорядоченном хранении определенные запросы работают гораздо быстрее. Только из-за того, что не требуется по многу раз дергать файл.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Beut emailИскать по авторуВ закладки on 17-Мрт-04, 05:11  (MSK)
>>а индексирование типа нельзя использовать? :)
>
>Естественно надо использовать. Но при упорядоченном хранении определенные запросы работают гораздо быстрее.
>Только из-за того, что не требуется по многу раз дергать файл.

Эту задачу и решают индексы.

Тебе же, для ускорения работы, нужно скорее грамотно изменить сами таблицы. Например, если все таблицы будут состоять из столбцов CHAR(200) и не будет ни одного VARCHAR, то скорость работы резко возрастёт. Просто по логике - если у нас каждая запись фиксированной длины, мы может перемещаться по файлу смещением.

А вообще почитай документацию по оптимизации MySQL - есть достаточно много тонкостей и способов выжать самую большую скорость по сравнению со всеми существующими на данным момент базами. Как же именно база работает со своими файлами, тебя особо интересовать не должно. Если ты, конечно, не её администратор. Если админ - читай ту же документацию по MySQL.

Удачи :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Andrew emailИскать по авторуВ закладки on 17-Мрт-04, 10:03  (MSK)
По поводу базы пусть на мыло пишет, можем помочь, тока обновлять ее он так запарится....... зачастую там прайс производителя надо обновлять целиком, а это как минимум файл мега в 3 ...........
  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 17-Мрт-04, 12:57  (MSK)
>>>а индексирование типа нельзя использовать? :)
>>
>>Естественно надо использовать. Но при упорядоченном хранении определенные запросы работают гораздо быстрее.
>>Только из-за того, что не требуется по многу раз дергать файл.
>
>Эту задачу и решают индексы.

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

Вот пример такой - большая база, проиндексирована естественно. На ней активно идет изменение. Через месяц-другой она начинает тормозить. Причем торможение становится больше и больше. И в этой ситуации спасал дамп и восстановление. Если вы с такой ситуацией не сталкивались, то вам пока просто повезло :)

МуSQL вобще довольно плохо работает с изменяемыми б/д, по крайней мере производительность по вставкам у нее наихудшаяя (суда по тестам, которых в инете навалом). В частности в той задаче от MySQL отказались в пользу postgres.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от MeLLowD Искать по авторуВ закладки on 17-Мрт-04, 14:11  (MSK)
>>>>а индексирование типа нельзя использовать? :)
>>>
>>>Естественно надо использовать. Но при упорядоченном хранении определенные запросы работают гораздо быстрее.
>>>Только из-за того, что не требуется по многу раз дергать файл.
>>
>>Эту задачу и решают индексы.
>
>Индексы решают проблему выбора нужных записей, и оптимизируют поиск этих записей.  
>Это разные уровни. Одно дело определить где находится требуемая запись, а
>другое - вытащить ее.
>
>Вот пример такой - большая база, проиндексирована естественно. На ней активно идет

Именно для динамического вормата полей и существует optimize table, который помимо прочего дефрагментирует файл БД и сортирует индексные страницы.
>изменение. Через месяц-другой она начинает тормозить. Причем торможение становится больше и
>больше. И в этой ситуации спасал дамп и восстановление. Если вы
>с такой ситуацией не сталкивались, то вам пока просто повезло :)
>
>
>МуSQL вобще довольно плохо работает с изменяемыми б/д, по крайней мере производительность
>по вставкам у нее наихудшаяя (суда по тестам, которых в инете
>навалом). В частности в той задаче от MySQL отказались в пользу
>postgres.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Andrew emailИскать по авторуВ закладки on 17-Мрт-04, 19:09  (MSK)

>>Вот пример такой - большая база, проиндексирована естественно. На ней активно идет
>
>Именно для динамического вормата полей и существует optimize table, который помимо прочего
>дефрагментирует файл БД и сортирует индексные страницы.
>>изменение. Через месяц-другой она начинает тормозить. Причем торможение становится больше и
>>больше. И в этой ситуации спасал дамп и восстановление. Если вы
>>с такой ситуацией не сталкивались, то вам пока просто повезло :)
>>
Это на какой ОСи крутилось?????????? Что бзнать на всякий случай..... а то мало-ли,............
  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Beut emailИскать по авторуВ закладки on 18-Мрт-04, 03:32  (MSK)
>Индексы решают проблему выбора нужных записей, и оптимизируют поиск этих записей.  
>Это разные уровни. Одно дело определить где находится требуемая запись, а >другое - вытащить ее.

А в чём проблема с вытаскиванием? Это уже проблема файловой системы в таком случае.

>Вот пример такой - большая база, проиндексирована естественно. На ней активно идет
>изменение. Через месяц-другой она начинает тормозить. Причем торможение становится больше и
>больше. И в этой ситуации спасал дамп и восстановление. Если вы
>с такой ситуацией не сталкивались, то вам пока просто повезло :)

А переиндексировать таблицы не пробовали? :)
Сколько тысяч записей, если не секрет? У меня таблицы на 20-30 тысяч работают без особых проблем. Если речь идёт о миллионах записей - тогда да, тут уже не до скорости.

Вообще индексы - это не всегда панацея и очень тонкая вещь. Нужно просто понимать что они делают и как работают.

>МуSQL вобще довольно плохо работает с изменяемыми б/д, по крайней мере производительность
>по вставкам у нее наихудшаяя (суда по тестам, которых в инете
>навалом). В частности в той задаче от MySQL отказались в пользу
>postgres.

Тут нужно просто уметь использовать возможности. Индексация и время добавления - вещи обратнопропорциональные. Когда требуется перегонять большие данные - удали индексы. А после создай заново. Иначе для каждой записи будет проводиться сопоставление индекса и т.д. (если же ещё и куча этих индексов - вообще беда). Индексы же позволяют резко увеличить скорость именно при чтении, что зачастую бывает гораздо важнее. Очень часто меняющиеся данные - откажись от индексации. В чтении потеряешь, зато при добавлении выиграешь. Ещё есть такие вещи, как LOAD DATA - это эффективнее оператора INSERT, так как загружает данные в массе.

И не уверен, что MySQL проиграет по тестам, если будет работать с оптимально реализованными таблицами. Хотя спорить не буду, не проверял. Просто пока действительно не сталкивался с задачами, которые не мог решить бы MySQL.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Andrew emailИскать по авторуВ закладки on 18-Мрт-04, 10:07  (MSK)
>>Индексы решают проблему выбора нужных записей, и оптимизируют поиск этих записей.  
>>Это разные уровни. Одно дело определить где находится требуемая запись, а >другое - вытащить ее.
>
>А в чём проблема с вытаскиванием? Это уже проблема файловой системы в
>таком случае.
>
>>Вот пример такой - большая база, проиндексирована естественно. На ней активно идет
>>изменение. Через месяц-другой она начинает тормозить. Причем торможение становится больше и
>>больше. И в этой ситуации спасал дамп и восстановление. Если вы
>>с такой ситуацией не сталкивались, то вам пока просто повезло :)
>
у меня в базе 8 000 000 наименований, кстати я когда обновлял пробовал INSERT IGNORE - тоже шустро работает...... и как-бы косяков не замечено пока, база вертится месяц - полтора, правда обновляли всего 2 раза....
>А переиндексировать таблицы не пробовали? :)
>Сколько тысяч записей, если не секрет? У меня таблицы на 20-30 тысяч
>работают без особых проблем. Если речь идёт о миллионах записей -
>тогда да, тут уже не до скорости.
>
>Вообще индексы - это не всегда панацея и очень тонкая вещь. Нужно
>просто понимать что они делают и как работают.
>
>>МуSQL вобще довольно плохо работает с изменяемыми б/д, по крайней мере производительность
>>по вставкам у нее наихудшаяя (суда по тестам, которых в инете
>>навалом). В частности в той задаче от MySQL отказались в пользу
>>postgres.
>
>Тут нужно просто уметь использовать возможности. Индексация и время добавления - вещи
>обратнопропорциональные. Когда требуется перегонять большие данные - удали индексы. А после
>создай заново. Иначе для каждой записи будет проводиться сопоставление индекса и
>т.д. (если же ещё и куча этих индексов - вообще беда).
>Индексы же позволяют резко увеличить скорость именно при чтении, что зачастую
>бывает гораздо важнее. Очень часто меняющиеся данные - откажись от индексации.
>В чтении потеряешь, зато при добавлении выиграешь. Ещё есть такие вещи,
>как LOAD DATA - это эффективнее оператора INSERT, так как загружает
>данные в массе.
>
>И не уверен, что MySQL проиграет по тестам, если будет работать с
>оптимально реализованными таблицами. Хотя спорить не буду, не проверял. Просто пока
>действительно не сталкивался с задачами, которые не мог решить бы MySQL.
>


  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Beut emailИскать по авторуВ закладки on 27-Мрт-04, 02:53  (MSK)
Как произвести оптимизацию хранилища в MySQL

Почистить "дырки" (дефрагментация), обновить статистику и отсортировать индексы:
OPTIMIZE TABLE имя_таблицы;
или использовать: myisamchk --quick --check-only-changed --sort-index --analyze
Внимание, myisamchk нужно запускать при _не_ запущенном mysqld, иначе нужно использовать утилиту mysqlcheck
(mysqlcheck --repair --analyze --optimize --all-databases --auto-repair)

Апдейт статистики оптимизатора:
ANALYZE TABLE имя_таблицы;
или использовать: myisamchk --analyze

Рекомендуется регулярно выполнять:
isamchk -r --silent --sort-index -O sort_buffer_size=16M db_dir/*.ISM
myisamchk -r --silent --sort-index -O sort_buffer_size=16M db_dir/*.MYI

  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Сергей emailИскать по авторуВ закладки(??) on 09-Апр-04, 13:06  (MSK)
При сортировке записей можно использовать ORDER BY? много недостатков он имеет если база данных небольшая (1000 строк)?
Ещё подскажите пожалуйста что такое "дамп"?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от MeLLowD Искать по авторуВ закладки(ok) on 09-Апр-04, 14:04  (MSK)
>При сортировке записей можно использовать ORDER BY? много недостатков он имеет если
>база данных небольшая (1000 строк)?
>Ещё подскажите пожалуйста что такое "дамп"?

Дамп грубо говоря преобразование БД в sql запросы, например для резервного копирования (смотри утилиту mysqldump все сразу станет понятно).
Поскольку альтернативы ORDER BY нету то вопрос довольно забавный :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

19. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от solotony emailИскать по авторуВ закладки on 09-Апр-04, 14:19  (MSK)
Проиндексируй и используй ORDER BY. Для такой базы даже не стоит думать об оптимизации :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

20. "Можно ли физически отсортировать записи в табл. MySQL? из PH..."
Сообщение от Сергей emailИскать по авторуВ закладки(??) on 10-Апр-04, 20:26  (MSK)
Спасибо всем за помощь!


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру