Re: MySQL: performance?
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.07.09 20:58
Оценка: 4 (1)
Здравствуйте, Firstborn, Вы писали:

F> А вот в самом простом и общем случае, что предпочтительнее с точки зрения скорости выборки в БД MySQL — 1 таблица с 1,000,000 записей, или же 1,000 таблиц с 1,000 записей? Предположим, join-ов не будет, то есть в обоих сценариях выборка будет производится по одной таблице, вопрос только в том, как повлияет на производительность наличие большого кол-ва таблиц в базе?


Первое, если выборка по PK или по индексу с высокой селективностью + еще много тонокостей, но каков вопрос таков ответ.
avalon 1.0rc1 rev 260, zlib 1.2.3
Re: MySQL: performance?
От: Cyberax Марс  
Дата: 11.07.09 21:13
Оценка: 4 (1)
Здравствуйте, Firstborn, Вы писали:

F>А вот в самом простом и общем случае, что предпочтительнее с точки зрения скорости выборки в БД MySQL — 1 таблица с 1,000,000 записей, или же 1,000 таблиц с 1,000 записей? Предположим, join-ов не будет, то есть в обоих сценариях выборка будет производится по одной таблице, вопрос только в том, как повлияет на производительность наличие большого кол-ва таблиц в базе?

Если поиск по индексу, то одна большая таблица однозначно выгодна (так как log(1000000) < 1000*log(1000)).
Sapienti sat!
MySQL: performance?
От: Firstborn Латвия  
Дата: 11.07.09 19:01
Оценка:
А вот в самом простом и общем случае, что предпочтительнее с точки зрения скорости выборки в БД MySQL — 1 таблица с 1,000,000 записей, или же 1,000 таблиц с 1,000 записей? Предположим, join-ов не будет, то есть в обоих сценариях выборка будет производится по одной таблице, вопрос только в том, как повлияет на производительность наличие большого кол-ва таблиц в базе?

И, кстати, ограничено ли как-то количество таблиц, что могут быть созданы в базе, скажем, 4.x?
mysql performance tables
Re[2]: MySQL: performance?
От: mazurkin http://mazurkin.info
Дата: 12.07.09 04:23
Оценка:
Cyberax wrote:

> Если поиск по индексу, то одна большая таблица однозначно выгодна (так как log(1000000) < 1000*log(1000)).


Если шардинг организован правильно, то такое отношение вряд ли может
иметь место.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: MySQL: performance?
От: Cyberax Марс  
Дата: 12.07.09 12:10
Оценка:
Здравствуйте, mazurkin, Вы писали:

>> Если поиск по индексу, то одна большая таблица однозначно выгодна (так как log(1000000) < 1000*log(1000)).

M>Если шардинг организован правильно, то такое отношение вряд ли может
M>иметь место.
Пофиг на шардинг. Это отношение всегда верно. С шардингом просто может случится, что запросы будут выполняться параллельно на разных узлах.
Sapienti sat!
Re[4]: MySQL: performance?
От: mazurkin http://mazurkin.info
Дата: 13.07.09 04:12
Оценка:
Cyberax wrote:

>>> Если поиск по индексу, то одна большая таблица однозначно выгодна (так как log(1000000) < 1000*log(1000)).


> Пофиг на шардинг. Это отношение всегда верно. С шардингом просто может случится, что запросы будут выполняться параллельно на разных узлах.


Если параллельно — то общее время выполнения как раз и будет в среднем
составлять log(1000), а не 1000*log(1000)
Posted via RSDN NNTP Server 2.1 beta
Re[5]: MySQL: performance?
От: Cyberax Марс  
Дата: 13.07.09 10:14
Оценка:
Здравствуйте, mazurkin, Вы писали:

>> Пофиг на шардинг. Это отношение всегда верно. С шардингом просто может случится, что запросы будут выполняться параллельно на разных узлах.

M>Если параллельно — то общее время выполнения как раз и будет в среднем
M>составлять log(1000), а не 1000*log(1000)
Параллельно на тысяче хостов сразу? Там накладные издержки будут в десятки раз больше самого времени поиска.
Sapienti sat!
Re[6]: MySQL: performance?
От: mazurkin http://mazurkin.info
Дата: 13.07.09 11:05
Оценка:
Cyberax wrote:

>>> Пофиг на шардинг. Это отношение всегда верно. С шардингом просто может случится, что запросы будут выполняться параллельно на разных узлах.

> M>Если параллельно — то общее время выполнения как раз и будет в среднем
> M>составлять log(1000), а не 1000*log(1000)

> Параллельно на тысяче хостов сразу? Там накладные издержки будут в десятки раз больше самого времени поиска.


Вообще топикстартер имел в виду одну БД — я же думал про кластер. В
случае одной БД, смысла разбивать по таблицам, конечно же нет.

А что касается "тысячи хостов" — так гугль как-то так и делает, правда
это уже не совсем реляционная БД — и ничего, все весело работает

http://labs.google.com/papers/mapreduce.html
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.