mysql百万级数据库优化(本地数据库测试,线上测试到晚上没人了再更新…)
本地电脑参数:
处理器:2.6 GHz Intel Core i5
内存: 8 GB 1600 MHz DDR3
jy_item表行数(数据量)
1822766 条数据
以下是整个优化对比过程
#jy_item表行数(数据量)1822766
SELECT count(id) FROM site_cyts.jy_item where 1; #1822766
#无索引查询平均耗时
SELECT item_id FROM site_cyts.jy_item where item_id='1527745397RW0mqqoM';#0.665sec
#加双字段索引(主键字段和where条件字段: id和item_id)
alter table site_cyts.jy_item add index id_code USING BTREE (`id` ASC, `item_id` ASC);
#加索引后查询平均耗时
SELECT item_id FROM site_cyts.jy_item where item_id='1527745397RW0mqqoM';#0.558sec
#删除索引(两种写法都可以)
drop index id_code on site_cyts.jy_item;#写法一
alter table site_cyts.jy_item drop index id_code ;#写法二
#删除索引后查询平均耗时
SELECT item_id FROM site_cyts.jy_item where item_id='1527745397RW0mqqoM';#0.665sec
#加索引(只加where条件字段: item_id)
alter table site_cyts.jy_item add index item_id USING BTREE (`item_id` ASC);
#加单子段索引
SELECT item_id FROM site_cyts.jy_item where item_id='1527745397RW0mqqoM';#0.00056sec
结论:
where 查询条件字段加单索引的效果是最好的。基本上是毫秒级的响应
alter table site_cyts.jy_item add index item_id USING BTREE (`item_id` ASC);
#或者简单点写
alter table site_cyts.jy_item add index item_id;