sql >> Databasteknik >  >> RDS >> Mysql

php mysql fulltextsökning i flera tabeller med id

Du kan skapa en "materialiserad vy".http://en.wikipedia.org/wiki/Materialized_view

i princip en tabell som är resultatet av JOIN, och skapa ett fulltextindex på det.

CREATE TABLE materialized (FULLTEXT idx (user_name,department_name)) 
 SELECT u.id,user_name,department_name 
 FROM users u INNER JOIN departments d ON (d.id = dept_id) 

Du kan sedan köra frågor på den tabellen istället..

SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)

men...

Du kommer att behöva uppdatera tabellen med jämna mellanrum (eller när de underliggande tabellerna uppdateras) - enklast är bara att DROP och återskapa - Eller så kan du använda TRUNCATE sedan INSERT INTO ... SELECT ... FROM ... formatera.

(mer utarbetade scheman involverar utlösare för att hålla "vyn" uppdaterad, eller till och med titta på binloggen och spela upp uppdateringar mot "vyn")



  1. mysql:se alla öppna anslutningar till en given databas?

  2. Ansluta Talend på Windows till en ODBC-databas

  3. fel vid installation av psycopg2, bibliotek hittades inte för -lssl

  4. MINUS-operator i MySQL?