- mysql select查询的数据是查询内存里面,如果没有查询的数据没有在内存,就需要mysql的innodb引擎读取磁盘,将数据加载的内存后在读取。这就体现了,mysql查询大量数据或冷数据性能比较慢的原因。
- select查询会加DML读锁,读锁是不互斥的。所以多个查询都可以读某条数据。
- select查询大数据时候,是边查询边返回给客户端。每次返回的大小为
net_buffer_length
参数控制,默认为16K。所以有时候大查询慢,客户端接受数据慢也可能是影响的原因。 - mysql也支持对select结果缓存,建议不要开启查询缓存(query_cache_type),因为mysql数据每一次变更,查询缓存都会失效,生产实时业务数据库,是多么频繁的变更呀, 所以select查询缓存没必要开启。
- mysql内存配置参数(InnoDB Buffer Pool):innodb_buffer_pool_size。
- 查询流程入下图:
Original: https://www.cnblogs.com/penngke/p/15385567.html
Author: penngke
Title: mysql select语句查询流程是怎么样的
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586024/
转载文章受原作者版权保护。转载请注明原作者出处!