Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaawansowane łączenie MySQL. Przyspieszenie zapytania

Jest na to sposób, ale im więcej dodasz pól, tym będzie drożej. To samo dzieje się z wieloma systemami CMS, które decydują się na przechowywanie dodatkowych danych użytkownika w tej formie.

Możesz uzyskać działający kod SQL wyszukiwania za pomocą tego:

SELECT
    users.*,
    firstname.data AS firstname,
    lastname.data AS lastname,
    eyecolor.data AS eyecolor,

FROM
    users
    LEFT JOIN completed_form_fields AS firstname ON firstname.userid = users.id AND firstname.fieldkey = "firstname"
    LEFT JOIN completed_form_fields AS lastname ON lastname.userid = users.id AND lastname.fieldkey = "lastname"
    LEFT JOIN completed_form_fields AS eyecolor ON eyecolor.userid = users.id AND eyecolor.fieldkey = "eyecolor"

WHERE
    firstname.data LIKE '%searchdata%'
    OR lastname.data LIKE '%searchdata%'
    OR eyecolor.data LIKE '%searchdata%'

Ta metoda staje się bardzo duża i kosztowna dla serwera MySQL, im więcej dodasz tabel. Dlatego radzę nie robić więcej niż 10-15 takich połączeń, a potem znowu profiluję to, aby się upewnić.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Włącz zdalne połączenie MySQL:BŁĄD 1045 (28000):Odmowa dostępu dla użytkownika

  2. Automatycznie ładuj wyniki, które w kółko pobierają te same wyniki

  3. MySQL MONTHNAME() z liczb

  4. schemat bazy danych dla atrybutów produktów

  5. Różnica między kodowaniem a sortowaniem?