- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:实际上除了select distinct(我还没有验证),主要的性能瓶颈可能是网络速度,当服务器和客户端都在本地主机上时,选择所有 200 万条记录花费了 36 秒,但是,在客户端坐在另一个盒子上的(据说是高速的)网络上,查询在 10 分钟后尚未完成。
这应该是 100mbps 的网络,但是当我检查客户端(java jdbc),它以 3kb/秒的速率接收数据。然而,mysql 服务器以 100kb/sec 的速度发送(尽管包括其他客户端连接)。为什么java jdbc客户端接收数据速度这么慢?
select distinct(indexed_column) from mytable
在只有 100 万行的 mytable 上非常慢,indexed_column 是一个非唯一索引。有没有办法优化它?一个解释给出了这个:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 1 | SIMPLE | mytable | range | NULL | my_index | 50 | NULL | 1759002 | Using index for group-by |
type=range 是否意味着它没有使用索引?这就是它慢的原因吗?
最佳答案
我会在表上建立一个唯一索引,在你想要“DISTINCT”的列上......
因此您要在给定列上查找 DISTINCT。如果您在要查找不同组合的列(或列)上构建 UNIQUE INDEX,则索引页面将仅包含指向符合此类组合条件的第一条记录的指针。
例如:如果你有
Category Count
1 587
2 321
3 172
4 229
5 837
您在类别上的 UNIQUE INDEX 将只有 5 条记录...在这种情况下,即使 5 个类别中有超过 2,000 个条目,DISTINCT CATEGORY 计数为 5,索引有 5,您已完成。将此概念应用到包含 100 万条以上记录的表中。
关于MYSQL 从具有 100 万行的表中选择 distinct(indexed_column),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116493/
编辑:实际上除了select distinct(我还没有验证),主要的性能瓶颈可能是网络速度,当服务器和客户端都在本地主机上时,选择所有 200 万条记录花费了 36 秒,但是,在客户端坐在另一个盒子
我是一名优秀的程序员,十分优秀!