powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / индексация в innodb
18 сообщений из 43, страница 2 из 2
индексация в innodb
    #38616404
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может с переменными поиграться например @@FOREIGN_KEY_CHECKS
...
Рейтинг: 0 / 0
индексация в innodb
    #38616407
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkov,

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

но большей проблемой являеться то, что внешний ключ, означает наличие индекса - а вот добавление в индекс...вот это время сжирает страшно при генерации данных и вставкой.
...
Рейтинг: 0 / 0
индексация в innodb
    #38616427
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453но большей проблемой являеться то, что внешний ключ, означает наличие индекса - а вот добавление в индекс...вот это время сжирает страшно при генерации данных и вставкой.

Внешний ключ не означает наличие индекса.
...
Рейтинг: 0 / 0
индексация в innodb
    #38616485
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

не понял... это как? в мускле можно создать констрейн без индексов?...круто...
...
Рейтинг: 0 / 0
индексация в innodb
    #38616547
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,

http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html
MySQL requires indexes on foreign keys and referenced keys so that foreign key checks can be fast and not require a table scan. In the referencing table, there must be an index where the foreign key columns are listed as the first columns in the same order. Such an index is created on the referencing table automatically if it does not exist. This index might be silently dropped later, if you create another index that can be used to enforce the foreign key constraint. index_name, if given, is used as described previously.
...
Рейтинг: 0 / 0
индексация в innodb
    #38616579
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453MasterZiv,

не понял... это как? в мускле можно создать констрейн без индексов?...круто...

в Оракле же можно.
...
Рейтинг: 0 / 0
индексация в innodb
    #38616582
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай еще раз. ты СНАЧАЛА делаешь нужный индекс а ПОТОМ вешаешь на него констрейнт? или как?
...
Рейтинг: 0 / 0
индексация в innodb
    #38616584
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор, так как форумы говорят что не возможно без написания своего мини протокола и обмена через сокеты.
ЧЕГО????
...
Рейтинг: 0 / 0
индексация в innodb
    #38616588
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html

авторTo avoid copying the table, disable foreign_key_checks during constraint creation.

начиная с Mysql 5.6
...
Рейтинг: 0 / 0
индексация в innodb
    #38616626
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html

авторTo avoid copying the table, disable foreign_key_checks during constraint creation.

начиная с Mysql 5.6

как я и сказал, то что кажеться не решаемым, вполне может иметь очень простое решение.

так ..смайлика обнимашки целовашки нету... ну ты понял . СПАСИБИЩЕ! ЧЕЛОВЕЧИЩЕ!
...
Рейтинг: 0 / 0
индексация в innodb
    #38616628
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkovможет с переменными поиграться например @@FOREIGN_KEY_CHECKS

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

спасибо
...
Рейтинг: 0 / 0
индексация в innodb
    #38616702
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453ScareCrow https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html

пропущено...


начиная с Mysql 5.6

как я и сказал, то что кажеться не решаемым, вполне может иметь очень простое решение.

так ..смайлика обнимашки целовашки нету... ну ты понял . СПАСИБИЩЕ! ЧЕЛОВЕЧИЩЕ!

чорт, у меня 5.5. вообщем всёравно копирует таблицу.


У меня счас есть, таблицы - куда я нагенерировал кучу данных.
Туда уже добавлены индексы которые должны быть.

теперь пытаюсь добавить ограничения - внешние ключи типа такого команда

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER TABLE `db`.`tb` 

  ADD CONSTRAINT `cname`

  FOREIGN KEY (`fk_field` )

  REFERENCES `db`.`tb2` (`id` )

  ON DELETE CASCADE

  ON UPDATE CASCADE
...
Рейтинг: 0 / 0
индексация в innodb
    #38616733
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторначиная с Mysql 5.6
...
Рейтинг: 0 / 0
индексация в innodb
    #38616738
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

да я видел это... так мне то что теперь делать... мнеж надо както базу создать на том что есть...
...
Рейтинг: 0 / 0
индексация в innodb
    #38616805
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453 ,

а может, просто влопп ?
Код: sql
1.
2.
3.
insert new_table
select * from old_table;
-- drop table old_table;

new_table - пустая таблица со всеми индексами сразу.
...
Рейтинг: 0 / 0
индексация в innodb
    #38616845
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007,

и сколько по времени оно будет один милиард записей закидывать?!
...
Рейтинг: 0 / 0
индексация в innodb
    #38616859
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007 alex564657498765453 ,

а может, просто влопп ?
Код: sql
1.
2.
3.
insert new_table
select * from old_table;
-- drop table old_table;

new_table - пустая таблица со всеми индексами сразу.

вообщем попробовал, после того как процесс дошол до милиона записей, скорость установилась 1250 записей в секунду. и потихоньку продолжает падать... похоже оно индексы заново строит. так что не быстрей счас чем копирование таблицы, но в перспективе будет медленее..
...
Рейтинг: 0 / 0
индексация в innodb
    #38617287
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторначиная с Mysql 5.6

может я чтото не так делаю.

обновил до версии 5.6

Код: sql
1.
2.
3.
#service mysql status

--->  Server version          5.6.16-64.2-569.precise



делаю

Код: sql
1.
2.
3.
4.
5.
6.
show global variables like '%check%';

set global foreign_key_checks = 0;
set global unique_checks = 0;

show global variables like '%check%';



убеждаюсь что стали фолс значениями.
в новом подключении к базе убеждаюсь что проверка отключена и запускаю свой

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ALTER TABLE `scirbs`.`files` 

  ADD CONSTRAINT `fk_files_folders`

  FOREIGN KEY (`fk_idfolder` )

  REFERENCES `scirbs`.`folders` (`idfolder` )

  ON DELETE CASCADE

  ON UPDATE CASCADE, 

  ADD CONSTRAINT `fk_files_users`

  FOREIGN KEY (`fk_iduser` )

  REFERENCES `scirbs`.`users` (`iduser` )

  ON DELETE SET NULL

  ON UPDATE CASCADE



и всеравно процес пошол copy to tmp table

ктото может подсказать что не так.
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / индексация в innodb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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