背景:我正在Ubuntu18.04LTS下的Apache2 LTS服务器上运行一个cqpweb,这是一个用PHP编写并连接到mysql数据库的语料库查询接口。Ubuntu服务器是从零开始设置的,目前没有对mysql或php的手动配置。
除非cqpweb开始抛出像下面这样的错误消息,否则它会很高兴地运行:
A MySQL query did not run successfully!
Original query: LOAD DATA LOCAL INFILE '/data2/cqpweb/cach/tab_dist_fycel9oplk' INTO TABLE `db_d
有时我会遇到一种奇怪的MySQL行为。让我们假设我有索引(type,rel,created),(type),(rel)。对于这样的查询,最佳选择是:
SELECT id FROM tbl
WHERE rel = 3 AND type = 3
ORDER BY created;
就是使用索引(type, rel, created)。但是MySQL决定将索引(type)和(rel)相交,这会导致较差的性能。下面是一个示例:
mysql> EXPLAIN
-> SELECT id FROM tbl
-> WHERE rel = 3 AND type = 3
希望您能帮助我理解我在将Oracle12c数据库转换为MySQL 5.7时面临的一个特定问题。
对于上下文,假设我们有一个表看起来有点像这样:
id firstname lastname
---------------------------
1 John Jones
2 tom smith
3 ALEX JonEs
数据可以在任何情况下或混合情况下输入到表中,在应用程序级别上没有控制,在数据库级别上没有任何约束或触发器。
因此,为了有效查询,在Oracle中创建了一个功能索引,如下所示,因为我们将始终使用小