Jump to content
  • 0

Случайная выборка данных из БД


bgraf
 Share

Question

Здравствуйте!

Подскажите способ случайной выборки нескольких строк из базы данных. Не используя id, так как есть пробелы, и не используя RAND() MySql, боюсь ляжет сервер.

Спасибо всем.

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

с такими ограничениями - только в ручную =)

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

Link to comment
Share on other sites

  • 0

делаете COUNT(), далее берёте SELECT * FROM `tablename` LIMIT случайное_число, 1

через UNION добавляете всё остальное. Должно работать неплохо. Разбавить WHERE или ORDER BY по вкусу

Link to comment
Share on other sites

  • 0

Вот сделал вот так, нашел код, соответственно подделал под себя:

сначала узнал

select count(*) from aaa as a, bbb as b 
WHERE
a.id = b.id and
a.uniq_id = b.uniq_id and
b.3d_viz = 1

потом

$sql = array();
while (count($sql) < $per_page)
{
$sql[] = "(SELECT * FROM aaa as a, bbb as b
WHERE
a.id = b.id and
a.uniq_id = b.uniq_id and
b.3d_viz = 1 LIMIT ".rand(0, $total_rows).", 1)";
}
$sql = implode(" UNION ", $sql);

скажите при количестве строк более 1000 и при посещении страницы 500 и более посетителей как это работать будет?

Edited by bgraf
Link to comment
Share on other sites

  • 0

скажите при количестве строк более 1000 и при посещении страницы 500 и более посетителей как это работать будет?

Запустите хотя бы самый простой apache bench и попробуйте.

Link to comment
Share on other sites

  • 0

скажите при количестве строк более 1000 и при посещении страницы 500 и более посетителей как это работать будет?

Запустите хотя бы самый простой apache bench и попробуйте.

простите а где его взять?

Link to comment
Share on other sites

  • 0

:-) спасибо.

Дело не в том что я не могу поискать в гугле, а в том что я не знаю что это такое и с чем его едят, если надо апачи то у меня на компе он не стоит, я разрабатываю на хосте, если это прога то как и куда ее установить?

Link to comment
Share on other sites

  • 0

:-) спасибо.

Дело не в том что я не могу поискать в гугле, а в том что я не знаю что это такое и с чем его едят, если надо апачи то у меня на компе он не стоит, я разрабатываю на хосте, если это прога то как и куда ее установить?

sudo apt-get install apache2-utils

ab будет внутри.

Link to comment
Share on other sites

  • 0

Так, например, можно установить ab в deb-based дистрибах.

Вы наверно не поняли или я не смог донести мысть о том что это для меня китайская грамота.

Давайте по порядку.

У меня на компе не стоит Апачи, сайт размещен на хосте, где и создается.

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

Спасибо Вам за терпение и помощь

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy