Mam dwie tabele w bazie MariaDB.

- pscategoryproduct (kolumny: idcategory, idproduct)
- psproductlang (kolumny: idproduct, name)

Chcę przypisać (UPDATE) produkty (id
product) do właściwych kategorii (idcategory) w tabeli "pscategoryproduct" na podstawie nazwy produktów z innej tabeli "psproduct
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Witam, znowu zwracam się do was o pomoc.
Mam 2 tabelki:
1. Tabelkę organizacji
2. Tabelkę usermeta, gdzie są wpisane dane, do jakiej organizacji należy użytkownik.
Jest to baza danych wordpress, więc nie doszukujcie się w tym logiki.
Tak więc, chcę pobrać dane o organizacjach i wyświetlić ile użytkowników należy do każdej z organizacji. Wyszukiwanie wg idorganizacji, iduzytkownika odpada, będę to robił wg nazwy organizacji. Wiem, że to zły sposób, ale nie mogę ingerować w
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@buchowo: Próbowałem dać GROUP BY i nadal otrzymuję 1 rekord (zły wynik). Jeżeli wywalam COUNT i JOIN, otrzymuję w wyniku 2 rekordy (dobry wynik). Problem jest w JOIN.
Spróbowałem zrobić JOIN do View, ale też otrzymuję błędny wynik...
  • Odpowiedz
Ktoś wie jak zainstalować OpenExpert.org tak aby działało? Bo mi się instalacja sypie na połączeniu z bazą danych.
link

Proszę o pomoc.

#php #mysql
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Muszę zrobić system ekspertowy w #php z bazą #mysql. Ktoś z was robił coś takiego? Korzystaliście z jakiegoś gotowego rozwiązania i modyfikowaliście je pod swoje potrzeby?
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#sf2 #symfony2 #bazydanych #mysql

używam create builder do stworzenia formularza.
W formularzu muszę przechowywać geolokalizacje, tj latitude i longitude...
Jakiego typu pola powinienem użyć oraz czy te dwie wartości powinienem trzymać razem czy osobno?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: to zależy. MySQL ma dopiero od wersji 5.7 potrafić indeksować dane geometryczne przechowywane w InnoDb, więc jeżeli to był Twój plan, to musisz poczekać. Jeżeli natomiast będą to tylko i wyłącznie lat/lng i nie planujesz stosować jakichś super skomplikowanych operacji, możesz użyć do tego celu decimal/float spokojnie ze zwykłym indeksem.
  • Odpowiedz
@ksiak: Dziwacznym rozwiązaniem jest np. obsługa constraintów:

For other storage engines, MySQL Server parses and ignores the FOREIGN KEY and REFERENCES syntax in CREATE TABLE statements. The CHECK clause is parsed but ignored by all storage engines.


A obsługa functional dependencies przed 5.7 jest ewidentą pułapką na niedoświaczonych programistów (na szczęście tylko raz musiałem to poprawiać w legacy code).

Dziwne zachowania zmieniają się zależnie od konfiguracji i wersji ale po
  • Odpowiedz
#bazydanych #programowanie #mysql #postgresql

Mam takie pytanie do bardziej doświadczonych dev'ów.

Sprawa jest następująca.
Jest strona, na której osoba zakłada konto (podaje nazwę firmy, swoj login i hasło) i automatycznie staje się administratorem w obrębie swojego konta w danej firmie.
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: PostgreSQL i MySQL osiągają podobną wydajność, więc tu musisz wybrać tą bazę, którą wolisz.

7500 wpisów to dla bazy danych bardzo mało danych. Gdyby tych danych było miliardy to wtedy mógłbyś zaczynać zastanawiać się nad wydajnością.

Musisz oczyswiście pamiętać o założeniu odpowiednich indeksów na pola. Przede wszystkim ważny będzie indeks na id_firmy, żeby szybko wybierać dane dla poszczególnej firmy.
  • Odpowiedz
@qwelukasz:
1. Bazy danych mają typ reprezentujący datę, więc chyba lepiej używać go niż stringów.
2. Dla wpisów historycznych stworzyłbym osobną tabelę. W tym momencie żeby wyświetlić aktualne wpisy musisz dla każdego wpisu wybrać wpis z maksymalnym historyid. To powoduje konieczność użycia podzapytań, co znacząco wpływa na wydajność (to można obchodzić dodając pole trzymające informację, czy dany wiersz jest aktualny, ale mimo wszystko lepiej przenieść te dane do osobnej
  • Odpowiedz
Siemano,

pomimo dobrego serwera, bo 8GB ramu i proc 8 rdzeni @ 2.4Ghz mam wrażenie, że serwer baz danych mysql jest powolny przy dużej ilości zapytań, wydawało mi się, że na słabszym serwerze działało to szybciej...

czy jakiś specjalista mógłby ocenić mojego konfiga?

Zamieszczam
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

mysqltuner.pl


@marionez: -------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Enable the slow query log to troubleshoot
  • Odpowiedz
Jak już @normanos wspomniał wcześniej, konfiguracja to coś co sprawdza się na samym końcu. Skrypt który uruchomiłeś wskazuje na jakieś problemy z indeksami na joinach, moje rady:
1: sprawdź czy zapytania poprawnie używają joinów
2: jeżeli używasz MySQL starszego niż 5.6 to aktualizuj go
3: jeżeli obciążenie nie jest typu 'read mostly' rozważ opcje przejścia na InnoDB jeżeli używasz MyISAM
  • Odpowiedz
Czy mysql trzyma jakiś plik tymczasowy podczas exportowania tablicy? Przykładowo wyeksportowałem sobie tablicę i ją wyczyściłem, ale usunąłem plik z komputera. Czy zatem na serwerze będzie gdzieś plik tymczasowy z tym backupem?

#informatyka #programowanie #mysql
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Kiedyś odzyskiwałem usunięte pliki z dysku. Jeśli to ważna rzecz, to może przestać pisać po tym dysku i postarać się wykonać "undelete" na pliku? To trochę niskopoziomowe, ale nie znam MySQL na tyle, żeby pomóc inaczej.
  • Odpowiedz
czy jest mi w stanie ktokolwiek wytłumaczyć czemu przy takim zapytaniu crashuje mi proces od bazy danych ? ;O ALTER TABLE offer ADD FOREIGN KEY (trader) REFERENCES samochody.admin(id) ON DELETE CASCADE ON UPDATE CASCADE;
#mysql #programowanie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #javascript #php #mysql

Witam, mam prosty skrypt w php ktory pobiera syf ze strony, wrzuca go do bazy i pozniej mozna sie tymi danymi bawic. Zachciało mi się robić to bez przeładowania strony, dałem rade napisać strukturke strony bazujac na js, niestety mam problem na ktory nie moge znalesc odpowiedzi, problem jest nastepujacy, zapytania do bazy nie dzialaja i nie moge znalesc nic
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wyciąguję peną ilość danych z bazy danych. Robię JOIN, GROUP BY, LIMIT itd. Jest mi to potrzebne do paginacji. Zamiast pobierać wszystkie dane i później wyświetlać pewną ich ilość, pobieram tylko tyle ile mi trzeba. Aby paginacja działała poprawnie muszę mieć ilość rekordów, która odpowia warunkom. Niestety jeżeli daję LIMIT, to zwraca mi tylko zadaną ilość rekordów (np. 20), więc jeżeli użyję funkcji count() w PHP, to zawsze otrzymam wynik 20.
Jeżeli w
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: Musisz robić dwa zapytania, jedno z LIMIT do wyświetlania, drugie z count() bez LIMIT żeby pobrać liczbę rekordów. W postgresie można to osiągnąć jednym zapytaniem z wykorzystaniem window functions.
  • Odpowiedz
@SiarkoWodor: A jeśli uczeń nie zdał? A poza tym podstawowym problemem z automatyczną inkrementacją jest to że nigdy nie masz pewności czy nie pójdzie dwa razy. Zamiast inkrementować ustawiaj.
  • Odpowiedz