mysql> EXPLAIN SELECT col1, col2 FROM t WHERE col1 REGEXP '^foobar_[0-9]{4}$';
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+
| 1 | SIMPLE | t | ALL | NULL | NULL | NULL | NULL | 757000 | Using where |
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+
1 row in set (0.15 sec)
mysql> DESCRIBE t;
+------------------------+------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+------------------------+------+-----+---------+-------+
| col2 | varchar(255) | NO | MUL | {} | |
| col1 | varbinary(255) | NO | PRI | | |
+------------------------+------------------------+------+-----+---------+-------+
2 rows in set (0.22 sec)
1
A
回答
2
,如果你有一個COL1指數,並添加LIKE
這樣的:
SELECT col1, col2
FROM t
WHERE col1 LIKE 'foobar_%' AND col1 REGEXP '^foobar_[0-9]{4}$';
你應該得到升技更快的速度。
還可以使(COL1,COL2)的指數,以使MySQL商店表的副本中memeory
+0
LIKE +索引:http:// dev .mysql.com/DOC/refman/5.6/EN /索引二叉樹的hash.html – biziclop
0
您可以通過創建第三行來加速此查詢,如果它的總是相同,那麼您已經預先計算了RegEx。
MySQL似乎並不支持function based indexes。
相關問題
- 1. MySQL:如何加快這個查詢(包括子查詢)?
- 2. 如何加快這個MySQL查詢?最新消息查詢
- 3. 如何加快MySQL查詢
- 4. 如何加快mysql_num_rows這個查詢?
- 5. 如何加快這個T-SQL查詢
- 6. 加快這個SQL查詢
- 7. 如何加快MySQL 4.1上的這個SQL查詢?
- 8. 如何加快這個DELETE/LEFT JOIN mysql查詢?
- 9. 我該如何加快(或分手)這個MySQL查詢?
- 10. 如何加快這個WordPress的Mysql查詢?
- 11. 我可以加快這個mysql查詢嗎?查詢
- 12. 如何加入這2個mysql查詢?
- 13. 加快mysql查詢?
- 14. MySQL查詢:這是更快的查詢
- 15. 這個mySQL查詢可以更快嗎?
- 16. 如何加快這些ActiveRecord查詢?
- 17. 如何加快MySQL數據庫/查詢?
- 18. 如何加快複雜的MYSQL查詢?
- 19. MySQL如何加快此SELECT查詢?
- 20. 如何加快我的mysql查詢?
- 21. 如何加快MySQL Select Case查詢
- 22. 如何使這個SQL查詢更快?
- 23. 如何使這個SQL查詢更快?
- 24. SQL:我怎麼加快這個查詢
- 25. 如何使這個複雜的查詢更快[MySQL]?
- 26. 加快不在MySQL查詢
- 27. 加快MYSQL LARGE查詢
- 28. 加快查詢的MySQL
- 29. 加快插入查詢mysql
- 30. 如何加快MySQL查詢?從3個表格加載數據
你可以嘗試添加一個索引COL1。但是我不確定mysql是否可以在列上執行正則表達式時使用索引。 – Namphibian
col1已經被索引... – golja
不是'PRI'已經是一種索引嗎? – qazwsx