Używanie schematu bazy danych do tagowania z tego zaakceptowanego pytania answer Czy możliwe jest zapytanie za pomocą group_concat, które działa z dużą ilością danych? Muszę uzyskać elementy z ich tagami dla wszystkich elementów oznaczonych tagiem x. Używanie zapytania z group_concat o ~ 5 milionów tagów jest bardzo powolne w ciągu> 15 sekund. Bez group_concat (elementy bez tagów) wynosi ~ 0,05 sekundy.Zapytanie dotyczące tagowania za pomocą group_concat
Jako pytanie uboczne, w jaki sposób SO rozwiązuje ten problem?
możesz podać przykładowe rekordy. –
SO wydaje się rozwiązywać ten problem, ograniczając pytania do maksymalnie 5 tagów. I co sprawia, że myślisz, że w ogóle używa 'GROUP_CONCAT()' podczas obsługi tagów? – Barmar
@Barmar: limit znaczników na SO nie jest związany z wydajnością, ale raczej [w celu skupienia się na pytaniach] (http://meta.stackexchange.com/a/34743); co do [schematu SO] (http://meta.stackexchange.com/a/2678), tagi są powiązane z postami zarówno w znormalizowany sposób (tabela "PostTags"), jak i mody denormalizowanej ("Posts.Tags"). 'pole) - ta ostatnia sprawia, że bardzo szybko można pobrać znaczniki postu za pomocą samego wpisu, podczas gdy pierwszy ułatwia wyszukiwanie wpisów z konkretnymi kombinacjami znaczników. – eggyal