Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nói chung, điều gì nhanh hơn, chuyển qua các tệp hoặc chạy truy vấn SQL LIKE% x% thông qua các đốm màu?

Nếu bạn có 1 triệu tệp để chuyển qua, bạn sẽ (tốt nhất là tôi biết) xem qua từng tệp bằng một biểu thức chính quy.

Đối với tất cả các ý định và mục đích, bạn sẽ làm điều tương tự trên các hàng của bảng nếu bạn truy vấn hàng loạt chúng bằng toán tử LIKE hoặc biểu thức chính quy.

Tuy nhiên, kinh nghiệm của riêng tôi với grep là tôi hiếm khi tìm kiếm thứ gì đó không chứa ít nhất một từ đầy đủ, vì vậy bạn có thể tận dụng cơ sở dữ liệu để giảm bớt tập hợp mà bạn đang tìm kiếm.

MySQL có các tính năng tìm kiếm toàn văn bản gốc, nhưng tôi khuyên bạn nên không sử dụng vì chúng có nghĩa là bạn không sử dụng InnoDB.

Bạn có thể đọc về những điều đó từ Postgres tại đây:

http://www.postgresql.org/docs/current/static/textsearch .html

Sau khi tạo chỉ mục trên cột tsvector, sau đó bạn có thể thực hiện "grep" của mình theo hai bước, một để tìm ngay các hàng có thể đủ điều kiện mơ hồ, tiếp theo là các hàng khác dựa trên tiêu chí thực của bạn:

select * from docs where tsvcol @@ :tsquery and (regexp at will);

Điều đó sẽ nhanh hơn đáng kể so với bất kỳ điều gì mà grep có thể làm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql tham gia bên trái với điều kiện trong bảng bên phải

  2. docker cam kết mysql không lưu

  3. Sử dụng nhóm không chụp trong MySQL REGEXP

  4. Làm cách nào để kích hoạt sql_mode nghiêm ngặt trong MySQL?

  5. CakePHP lưu dữ liệu HABTM