select * from table order by rand() limit 100;
\\效率低下,执行一次大概需要0.1s
如果同时来500条这样的请求,那第500条请求不是得等50s,这个请求不会挂掉么
PS.准备这两天测试下,不过还是期望有同学先来分析下,顺便推荐些相关书籍
select * from table order by rand() limit 100;
\\效率低下,执行一次大概需要0.1s
如果同时来500条这样的请求,那第500条请求不是得等50s,这个请求不会挂掉么
PS.准备这两天测试下,不过还是期望有同学先来分析下,顺便推荐些相关书籍
5 回答3.3k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答2.1k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
不会挂掉,只会取决于你的 mysql 服务器有多强大。如果你的数据比较少能够全部放入缓存里面的话,很有可能会远小于 50s,不过这个都说不准,得看你的机器实际配置。
会让 mysql 挂掉的一般就是并发的 insert + update,因为排队的锁太多导致 mysql 等待锁时间找出限额导致自动崩溃。
书的话《MySQL性能调优与架构设计》这本书作为入门还不错,更多进阶的内容应该去看看 Mysql Performance Blog。