执行count时慢 | mysql | mysql 技术论坛-江南app体育官方入口
服务器环境:centos7 mysql8
10多条数据,执行```sql
select count(*) from hy_dept
``竟然耗时时间300多ms,这种情况怎么排查和优化呢?
create table `hy_dept` (
`id` int not null auto_increment,
`pid` int default null comment '上级组织',
`uid` int default null,
`dept_type` int default null comment '单位类别',
`ordering` smallint default '10001' comment '排序',
`dept_name` varchar(100) default null comment '组织名称',
`principal` varchar(100) default null comment '负责人',
`tel` varchar(11) default null comment '联系电话',
`pathint` varchar(500) character set utf8mb4 collate utf8mb4_0900_ai_ci default ':',
`createtime` timestamp null default current_timestamp comment '创建时间',
primary key (`id`)
) engine=innodb auto_increment=20036 default charset=utf8mb4 collate=utf8mb4_0900_ai_ci
服务器啥配置啊,和mysql关系不大吧
我本地测试也是0.01s,但服务器上执行就是300ms多.在mysql控制台里执行的,是不是和my.cnf配置有关,有什么调优工具吗?谢谢!
数据库不是服务器本地的吧,跨地区访问数据库就是慢
innodb 是内存表, 一般是没行数记录的, 你可以看phpmyadmin上显示也是~ (约等号) 可以增加搜索条件来加快速度. select count(*) from hy_dept where pid > 0
当然最好的办法是增加个字段 如 tad 全部入 1 sql写成 select count(*) from hy_dept where tad = 1
速度将最快.