请教Mysql索引优化问题

2021-01-09 15:48发布

问题:

我的数据库表device_data有字段id,deviceId,macid,uploadtime等字段,其中id是自增。
这个表现在数据在2千万左右。
有联合索引 idx_deviceId(deviceId,uploadtime)和
联合索引 idx_mac(macid,uploadtime)
目前出现了一个问题就是插入数据会出现超时
插入是批量插入,每批插入的数据行数不超过300条
我怀疑是索引的问题

所以我把 deviceid,macid,uploadtime分别独立建立索引

请教下这样是否有问题

回答1:

这应该是mysql的配置问题,就这几个索引和数据量应该不算什么问题
https://stackoverflow.com/questions/48244592/large-mysql-insert-timeout SET GLOBAL innodb_buffer_pool_size = 1073741824. 这个有个参考。



回答2:

看下mysql的配置 max_allowed_package参数值是多少,看看是不是插入的数据超过该参数值了



回答3:

因为插入数据的时候,要维护索引,导致插入数据超时,不要建立过多的索引,虽然查询快,但是维护索引也是有成本的,建议把表的数据拆分成多个表