- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть таблица, в которой уже 150.000 записей. В итоге будет более 1 млн.
--
CREATE TABLE `btxms_assets` (
`id` int(10) UNSIGNED NOT NULL COMMENT 'Primary Key',
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set parent.',
`lft` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set lft.',
`rgt` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set rgt.',
`level` int(10) UNSIGNED NOT NULL COMMENT 'The cached level in the nested tree.',
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.\n',
`title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The descriptive title for the asset.',
`rules` varchar(5120) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'JSON encoded access control.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `btxms_assets`
--
ALTER TABLE `btxms_assets`
ADD PRIMARY KEY (`id`),
ADD KEY `lft` (`lft`),
ADD KEY `rgt` (`rgt`);
Уже сейчас на данном этапе тупят запросы вида
SET rgt = rgt + 2
WHERE rgt >= 109455
EXPLAIN показывает что запрос пробегает по всей таблице. Индекс на поле не помогает.
И пришла идея партицировать таблицу по блокам lft и rgt чтобы в каждой части были значения по 10.000.
Не подскажите запрос как это сделать?
Что-то Вы совсем к мануальным вопросам перешли.
Во-первых https://dev.mysql.com/doc/refman/5.7/en/alter-table-partition-operations.html
Во-вторых в phpmyadmin можно задать очень удобно партиционирование.
Но по нам так ни к чему так сразу резко, начните с банального упорядочивания что-ли.
alter table btxms_assets order by rgt, lft допустим.
А вообще если Вы вот этот (видимо редко меняющийся) "хлам"
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.\n',
`title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The descriptive title for the asset.',
`rules` varchar(5120) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'JSON encoded access control.'
Вынесете в отдельную таблицу (слинковав по примариИД, благо оно у вас уже есть), то Вы просто офигеете как быстро эти апдейты будут работать.
При этом и скорость работы выборок скорее всего будет выше, т.к. нужные примариИД будут выбираться быстрее, а к ним уже будет джоиниться по примариИД нужные name/title/rules.