Теперь, когда я преобразовал свои первичные ключи в GUID, как я могу исправить производительность? - PullRequest
0 голосов
/ 06 декабря 2008

Я использую TopLink в качестве ORM и MySQL в качестве БД.

Я обменял свои первичные ключи с автоинкрементом на GUID для одной из моих таблиц (хорошо, не совсем: на самом деле я использую 64-битное случайное число, но этого достаточно для моих нужд).

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

Что я могу сделать?

Ответы [ 4 ]

1 голос
/ 06 декабря 2008

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

1 голос
/ 06 декабря 2008

Убедитесь, что ключевой столбец действительно является ПЕРВИЧНЫМ КЛЮЧОМ и, следовательно, кластеризованным (физическим) индексом.

Убедитесь, что у вас есть индексы, которые соответствуют вашим общим запросам.


Случайный целое число? Ты понимаешь, что есть шанс попасть в ту же самую клавишу?

1 голос
/ 06 декабря 2008

Если ваша таблица проиндексирована полями, по которым вы запрашиваете. Содержание ключа не должно оказывать заметного влияния на производительность. Может, там что-то еще.

0 голосов
/ 06 декабря 2008

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

create index Table_creationDate on Table(creationDate);
...