Mysql
 sql >> база данни >  >> RDS >> Mysql

php mysql търсене на пълен текст в множество таблици, обединени от id

Можете да създадете „материализиран изглед“.http://en.wikipedia.org/wiki/Materialized_view

основно таблица, която е резултатите от JOIN, и създаване на пълен текстов индекс върху това.

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) 

След това можете вместо това да изпълнявате заявки към тази таблица..

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

но...

Ще трябва периодично да актуализирате таблицата (или когато се актуализират основните таблици) - най-лесно е просто да DROP и пресъздайте - Или можете да използвате TRUNCATE след това INSERT INTO ... SELECT ... FROM ... формат.

(по-сложните схеми включват тригери за поддържане на „изгледа“ актуализиран или дори гледане на binlog и повторно възпроизвеждане на актуализации срещу „изгледа“)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да актуализирам един бит от двоично число като превключвател?

  2. Как да създам SQL заявка, която се групира в определен процентен диапазон

  3. групиране по име на месец в sql

  4. c# MySQL като заявка, която не приема параметри

  5. Да използвате Django dumpdata за изхвърляне на подмножество от общи данни?