MySQL big tables

15 отговора 469 прегледа
#1

MySQL big tables

здравейте,

работя по проект в който използвам MySQL 4.0.16, resin 2.1.10, jdk 1.4, TICL 1.0 tag library. Очаквам таблиците да садържат около 2 милиона записа на година с големина около 60 МБ. Въпросът ми е следният:

Нужно ли е да правя организация така че таблиците да са с по-малка големина(например да разделя данните на тримесечие)?
Компютъра на който ще работи апликацията е с Win2K, 128M, 700Mhz.

благодаря.

Отговор
в отговор на machine head #2

Re: MySQL big tables

зависи какво мислиш да правиш с тях...
ако просто ще си стоят там и няма много да ровиш в тях значи всичко е ок

Отговор
в отговор на зъл oйлюфф #3

Re: MySQL big tables

само INSERT-вам и

SELECT * from table where date>... limit ...

Отговор
в отговор на machine head #4

Re: MySQL big tables

ами дръж ги в една таблица, иначе само ще си усложниш живота

Отговор
в отговор на зъл oйлюфф #5

A byrzodeistvieto?

Nali predi limita ste se sortira po dati - tova niama li da zabavia rabotata.

Отговор
в отговор на зъл oйлюфф #6

Re: MySQL big tables

Доста необмислен отговор. Дори не знаеш за какво става дума, ама давай - в една таблица.
Ами аз моите 96 таблици ако ги сложа в 1 (не че има как да стане), сещай се какво ще се случи

Отговор
в отговор на xe ;) #7

Dai po-podrobno predskazanie

Dai po-podrobno predskazanie

Редактирано от NikB на

Отговор
в отговор на зъл oйлюфф #8

Извинявай

Замислих се какво имаш в предвид. Прав си.
Май аз давам необмислени отговори.

Отговор
в отговор на machine head #9

Re: MySQL big tables

какво те кара на Win2K да пускаш MySQL ?
аз бих ползвал MS SQL ....

иначе - мисля, че два милиона записа не е чак толкоз огромна таблица, че да и се притесняваш...

[линк]
Отговор
в отговор на Topбaлaн #10

Re: MySQL big tables

ами поради три причини:

- клиента не иска да плаща по-вече за лицензи
- идеята е всичко това заедно да може лесно да се пренася от компютър на компютър само като се копира директорията.
- не съм работил с MSSQL но си мисля, че там ще трябва да се аминистрира и т.н.

тази нощ вкарах 2,5 млн записа и сега ще видя как е....
на първи взгляд като гледам ще трябва да оптимизирам всички заявки...

Отговор
в отговор на xe ;) #11

Re: MySQL big tables

и какво за твойте 96 таблици??
ти от 2М реда на година ли се притесняваш??

и кво, като ги разбие на тримесечия и му потрябва за няколко ще пише union-и като гламав ли???

баси...

Отговор
в отговор на NikB #12

Re: A byrzodeistvieto?

нищо, лимит-а пак ще спре, като намери необходимата бройка резултати от индекса

единствения "шанс" лимит-а да препаре-не целия резултат е да се фечва и общата бройка на резултата

виж [линк]

Отговор
в отговор на зъл oйлюфф #13

Re: MySQL big tables

значи по-подробно:

- на всяка минута се правят по 2 записа
- ограничил съм справката да не съдържа период по-голям от 3 месеца
- ако ги разбия на тримесечия най-много ще имам union на две таблици

тестовете на таблица с 2.5 млн записа не са обнадеждаващи...

може би и аз не създавам индексите както трябва но е бавнооо

Отговор
в отговор на machine head #14

дааа

И индексите и построяването на заявките са важни.

Ако можеш да дадеш повече конкретна информация за INSERT и SELECT заявките, които ще правиш, евентуално ще можем и да ти помогнем повече.

А дори и да имаш индекс върху полето за датата, пак е от голямо значение как ще си построиш заявките:


mysql> select COUNT(*) from SS;
+----------+
| COUNT(*) |
+----------+
| 3181155 |
+----------+
1 row in set (0.00 sec)

mysql> select COUNT(*) from SS where datetime>NOW()-INTERVAL 1 HOUR;
+----------+
| COUNT(*) |
+----------+
| 1284 |
+----------+
1 row in set (0.00 sec)

mysql> select COUNT(*) from SS where datetime>NOW()-INTERVAL 1 DAY;
+----------+
| COUNT(*) |
+----------+
| 15485 |
+----------+
1 row in set (0.04 sec)

mysql> select COUNT(*) from SS where datetime>NOW()-INTERVAL 1 MONTH;
+----------+
| COUNT(*) |
+----------+
| 410949 |
+----------+
1 row in set (1.12 sec)


Everything louder than everything else...
Отговор
в отговор на machine head #15

Re: MySQL big tables

След като оптимизираш заявките си пусни по един explain и виж къде да си оптимизирап и някои други неща :-)))))))

помисли и за оптимизация на полетата -> намаляване на размера на полето, което е по-голямшко ако е възожно, също и индекс по част от полето и т.н.

Обещавам ти че ако хвърлиш достатъчно много усилия и четене ще постигнеш повече от задоволителен резултат.

П.С. Ако някой е рекъл да се заяжда за бройка и големина и т.н. да прочете това :
Скии' кво брато аз не 2 а 20 милиона записа ги ям за закуска така че можеш само да правиш като вятъра :-)

За другите не важи :-)))

Е тук нищо няма:[линк]

Редактирано от ro6avia на

Отговор
в отговор на ro6avia #16

Re: MySQL big tables

за съжаление времето ми изтича....

тъй като смятам, че с базите данни съм много по-зле отколкото с програмирането ще го направя от към програмата.....

за което съжалявам, защото всеки път така става....


Благодаря на всички и успехи ви желая.

Отговор