X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Работа с большой базой данных
yuriy_hb
yuriy_hb
Topic Starter сообщение 10.4.2011, 17:01; Ответить: yuriy_hb
Сообщение #1


Привет всем! У меня возникла вот какая задача! Есть таблица в базе данных, в которой хранятся загруженые прайсы. Эта таблица содержит огромное количество строк свыше 500000 строк и с каждым разом все пополняется новыми строками. Вопрос. Как поддерживать даную таблицу чтобы производительность не падала с учетом возростания добавленой информации? Даже при током количестве (индексация присутствует, тип таблицы MyISAM) когда производим запрос на поиск запчасти сервер долго думает... как следует правильно поступать с огромнымы таблицами... и есть ли придел при котором сервер не сможет обрабатывать запросы?

Интиресно как же работает Google ведь там милиарды строк а результат появляется мгновенно??? Спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 10.4.2011, 19:14; Ответить: Witu
Сообщение #2


увидеть бы структуру таблицы и пример одной строки

может там у вас для хранения даты используется varchar(255) или еще чего :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 10.4.2011, 19:45; Ответить: yuriy_hb
Сообщение #3


Посмотрите на скриншот структуры моей таблицы! Эта таблица содержит свыше 500000 строк и каждый раз их количество пополняется!!! Что посоветуете???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 10.4.2011, 19:48; Ответить: yuriy_hb
Сообщение #4


Вот содержимое таблицы!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 10.4.2011, 20:10; Ответить: Apay
Сообщение #5


(HTMLandPHP @ 10.4.2011, 22:14) *
может там у вас для хранения даты используется varchar(255) или еще чего :)
увы вы правы, там еще хуже.


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

что пока можете сделать (чуток облегчит жизнь):
1) deliverydate - сделать тип datetime
2) presence - тип tinyint и сопоставить 0:нет, 1:есть, ...
3) int(20) а тем более int(50) делать - совсем маразм, переправте просто на int, в крайнем случае на bigint
4) добавить индексов к полям по которым делается всякие where и order ...

а вообще наймите человека (того кто знает базы) чтобы он привел базу к нормальному виду, это скорей всего только одна таблица из базы, и то в ней полный п...ц, подозреваю что в таком состоянии вся база. в общем базу надо полностью переделывать, объяснять что и как - слишком долго и нудно. нанимайте чела для этого.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 10.4.2011, 20:54; Ответить: Witu
Сообщение #6


вы уверены что у вас зарегистрируется 4 294 967 295 пользователей? (userId 4 миллиарда) помоему хватит и SMALLINT (65535)

пересмотрите полностью все типы данных для всех столбцов..
индекс какой то странный... 8 столбцов... обычно идекс ставят на те поля по которым ищут... тупо индексировать всю таблицу обычно до добра не доводит

думаю если правильно сделать индекс и изменить типы полей то получится сократить время выборки процентов на 20-80
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 10.4.2011, 23:12; Ответить: Apay
Сообщение #7


HTMLandPHP, там по-хорошему надо нормализовать базу
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 11.4.2011, 10:20; Ответить: yuriy_hb
Сообщение #8


Учтем Ваши пожелания! Спасибо за розяснения!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 11.4.2011, 11:40; Ответить: yuriy_hb
Сообщение #9


А кто подскажет как создать таблицу размером 10Гб (по умолчанию размер таб. составляет окололо 4Гб). В рнрAdmin невозможно указать размер создаваемой таблицы!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 11.4.2011, 12:45; Ответить: Witu
Сообщение #10


ALTER TABLE tbl_name MAX_ROWS=сколько_влезет AVG_ROW_LENGTH=nnn;

вместо nnn указывается число в ТБ..

PS ооооочень не советую использовать таблицу таких размеров.. проще и дешевле будет продумать систему разбиения одной таблицы на несколько маленьких
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6880 8.4.2024, 17:17
автор: spoyer_ru
Открытая тема (нет новых ответов) BANZAI Partners – новый рекламодатель с пустой базой игроков. RevShare до 50%
0 BANZAI_Partners 688 27.3.2024, 14:44
автор: BANZAI_Partners
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3919 9.2.2024, 16:04
автор: baza0013
Открытая тема (нет новых ответов) Нужна работа
0 filatd 742 12.1.2024, 17:08
автор: filatd
Открытая тема (нет новых ответов) Работа: Разная рутина
Работа, разные рутинные задачи: постинг / переговоры / поиск
1 ivanshargin 967 31.10.2023, 17:55
автор: ServersExpert


 



RSS Текстовая версия Сейчас: 26.4.2024, 9:59
Дизайн