powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите расставить Индексы. если это возможно
10 сообщений из 10, страница 1 из 1
Помогите расставить Индексы. если это возможно
    #39294483
Deus_2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица такого вида.
Код: sql
1.
SELECT * FROM `like_in_game` ORDER BY `id` ASC




Я получаю Группу уникальных флагов к нику по колонке destname таком запросом

Код: sql
1.
SELECT flag,COUNT(`flag`) AS sum FROM like_in_game WHERE destname='NINDZIA' GROUP BY `flag` ORDER BY `sum` ASC




Записей в таблице будет больше чем 20000.
Как расставить индексы или изменить запрос для более быстрого ответа.
Код: sql
1.
INSERT

тоже выполняется но не часто в час возможно около 50-100
Код: sql
1.
DELETE

и
Код: sql
1.
UPDATE

не выполняются.
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294610
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте индексы (destname, flag) или (destname). По идее, первый должен быть быстрее.

Поле flag может быть NULL?
Почему имена пользователей не вынесены в отдельную таблицу пользователей?
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294618
Deus_2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, flag не может быть NULL, 0 или 1 ,больше значении нет. Пользователи есть в др. таблице но она большая. Да и смысл какои через 2 таблицы при инсерте ходить причем сразу 2х ников
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294620
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deus_2016Да и смысл какои через 2 таблицы при инсерте ходить причем сразу 2х никовФразу не понял, но пояснию - хранить идентификаторы пользователей дешевле, чем сами ники. Кроме того, размазывание ников по разным таблицам затрудняет некоторые операции. Например, смену ника у пользователя. А для ряда запросов все равно требуется соединение с таблицей пользователей, которую дешевле делать по числовым полям.
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294631
Deus_2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, Принципи я сразу понял к чему вы клонили, но не важно место да и бог с ним, да и ники сменить у нас нельзя, И плюс эта таблица не как не влияет на работу основнои задачи, это просто статистика. Я вот к чему возможно ли запрос сделать оптимальнее или
возможна некоторая другая структура данных для быстрого поиска? Суть тут простая человек ставит + или - другому человеку. это сохраняется в таблице на мои взгляд которая очень простая и информативная
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294636
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deus_2016возможна некоторая другая структура данных для быстрого поиска?Про минимизацию хранимых данных я уже писал.

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


Deus_2016Суть тут простая человек ставит + или - другому человеку.Для этой задачи назначение полей id и idhardware остается непонятным. Но это дело ваше, если считаете, что нужно - пусть будут.
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294641
Deus_2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, id и idhardware. первое поле для первичного индекса. по другому я не могу. второе поле создает уникальнось при проверке idhardware в другом запросе чтоб можно было только один раз голосовать с одного компьютера. как я понимаю без первичного индекса не как не обоитись а др поля не могут быть уникальными
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294646
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deus_2016как я понимаю без первичного индекса не как не обоитисьНу если только по каким-то вашим собственным причинам (например, без этого не работает используемая библиотека). Самому MySQL все равно есть в таблице первичный ключ или нет.
Deus_2016второе поле создает уникальнось при проверке idhardware в другом запросе чтоб можно было только один раз голосовать с одного компьютераДля этого нужен уникальный индекс (name, idhardware) или (name, destname, idhardware) в зависимости от деталей задачи. Он же мог бы быть и первичным ключом.
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294650
Deus_2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, да индекс по 3 полям. но для чего он нужен тогда собственно? если я всего лишь проверяю WHERE name AND idhardware AND destname, если ответ 0 то можно вставлять
...
Рейтинг: 0 / 0
Помогите расставить Индексы. если это возможно
    #39294678
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deus_2016miksoft, да индекс по 3 полям. но для чего он нужен тогда собственно? если я всего лишь проверяю WHERE name AND idhardware AND destname, если ответ 0 то можно вставлятьВот для того и нужен, чтобы не проверять. Ну и чтобы исключить риск параллельной вставки в момент между проверкой и вставкой.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите расставить Индексы. если это возможно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]