同来玩月人何在, 风景依稀似去年.
--唐 赵嘏 江楼感旧
#物是人非# #程序员有文化系列#
同来玩月人何在, 风景依稀似去年.
--唐 赵嘏 江楼感旧
#物是人非# #程序员有文化系列#
介绍了如何通过利用 mysql SQL_CALC_FOUND_ROWS 特性, 在一条 sql 语句里同时查出总数及分页结果
展示分页列表是一个常见的开发需求, 需要查询出总数及分页数据.
传统上, 这个一般是通过两条 sql 去实现. 先是查询总数, 比如这样:
select count(*) from programmer where age >= 35;
然后再查分页结果:
select * from programmer where age >= 35 limit 0, 10;
如果是简单的查询还好, 但对于一些复杂的涉及很多条件的查询, 往往需要重复那些条件.
注: 在 mybatis 中, 你可以把公共的条件抽取出来做成一个可复用模块, 不过这样一来结构就相对复杂了, 也不是那么直观.
那么, 是否有方式可以避免上述麻烦, 一条语句就可以查出总数及分页结果呢? 那就要用到 mysql 里的 SQL_CALC_FOUND_ROWS
特性了.
如果均可以的情况下, 存储时间应该优先使用 timestamp 而不是 datetime, 因为前者只需 4 字节, 而后者需 8 字节.
在插入记录时, 如果没有为第一个 timestamp 列指定值时, 会自动设置为当前时间;
更新记录时, 也会默认自动更新第一个 timestamp 列(除非 update 中另外指定了值).
--<<高性能 MySql>>
天冷了, 又得找毛衣穿了...
nandgame: 建造一个简单的计算机. 玩到了内存部分, 越来越难了.