- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Dreammaker, увы, помоему это бизнес-логика: сортировка по дате добавления, по заглавию или случайным образом. Так что вряд ли тут что-то можно править. Но Вы правы - проблемы из-за этих сортировок.
По RAND(). Проблема не в RAND(), а в самом факте сортировки с mediumtext полями.
Так что вряд ли тут что-то можно править. Но Вы правы - проблемы из-за этих сортировок.
Можно исправить способ случайного "доставания" записей. Если не критично количество запросов, то можно доставать по COUNT(*) (что при присутствиии индексов по id будет малозатратно), затем генерировать $rand = rand(0, $row['count']) и делать N-ое количество запросов "SELECT .... LIMIT $rand, 1".
Для 25+25 записей это конечно может быть "что занадто, то не здраво", но можно подумать и о оптимизации алгоритма.
Проблема не в RAND()
Подождём что скажет ТС. Если проверка, которую я указал выше разгрузит базу, то причина в RAND() .
Я не отрицаю, что проблема в текстовых полях, но RAND() здесь играет не последнюю роль. Если я ошибаюсь, готов признать свою вину. Всегда готов учится. :) То, что в идеале нужна нормализация базы - согласен - эта мысль мне тоже вначале приходила. Но возможно можно исправить проблему меньшими силами.
update: сейчас подумал, что проверка не определит проблема больше в rand или вообще в сортировке по текстовым полям.
да конечно про RAND() знаю, пробовал делать сортировку по id но не сильно помогает. Видимо всё Слава Шевцов был прав, тока как организовать это понятия не имею, понял про таблицы, но как сделать выборку в таком случае не понял :(
Если прав Слава Шевцов и вы не совсем понимаете что к чему, то лучше всё же кого-то нанять.
да нет, я просто имел ввиду что можно пример выборки привести? а там попробую разобратся
KosoyRoman добавил 26.02.2008 в 16:35
ребята может кто знает настройки мускула. у меня стоит 96мб памяти для пхп выделенно 16мб может подскажите как мускул более производительнее сделать.
port = 3306
socket = /tmp/mysql.sock
default-character-set = cp1251
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
server-id = 1
default-character-set = cp1251
skip-character-set-client-handshake
init-connect="SET NAMES cp1251"
skip-bdb
skip-innodb
#innodb_data_home_dir = /var/db/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/db/mysql/
#innodb_log_arch_dir = /var/db/mysql/
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
default-character-set = cp1251
[mysql]
no-auto-rehash
#safe-updates
default-character-set = cp1251
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
KosoyRoman, а бестолку - таблица всё равно будет записана на диск. Даже если она десять раз уместится в памяти. Особенность такая у MySQL.