在做项目的过程中,初期没有考虑索引问题,觉得几万条数据而已,查询能话费多长时间呢。
实际到后期生产前测试的时候,一个分页查询给我整懵逼了,居然花了40秒的时间,还是直接在数据库查询的时间,跑程序更是client连接超时了。
这是一个有趣的现象,添加索引的时候索引方法有两种:BTREE和HASH,在这个项目中,添加的索引字段都是具有唯一性的,而且查询也是直接=比较的,
显然hash索引方法更快速,就想着选择hash,结果却是保存的时候直接变成btree了。
这个问题的原因和mysql的引擎有关。默认innoDB,不支持hash方法。