mysql数据库是中小微企业常用的一种数据化管理工具,它具有轻便,简洁,免费等特点。mysql自8.0后开始有收费版和免费版。在这里,我们主要分析mysql相关语法和相关优化。
第一个问题是mysql查询在什么情况下会变慢?
根据实践得知,当单表数据行数据达到10万条数据时,采用select*语法将会使查询变慢。
当单表数据存储达到M或者更多时,采用select*语法也会使查询变慢。
第二个问题是如何根据慢sql做优化?
首先,我们需要从以下几方面来考虑和优化,其一,该表的引擎是如何的,以及即将要如何,熟悉myisam的应该都知道,这个引擎虽然不支持事务,但是查询速度却是很快,即使一百万条数据也能在1秒内查询出来,因此,如果在查询比较多的情况下建议考虑myisam引擎。
其二,在表引擎不可修改的情况下,需要针对表进行优化,先查看该表是否有大字段数据,如有,则新建一张表,把大数据单独拿出来另外记录(这里需要注意单独算时,如果表字段小于10个,则不需要新建表,当字段数大于等于20个以上时,把大数据字段新建一张表是最划算的。)
其三,则是考虑优化查询语句,首先需要把select后面的字段做相对应的修改,遵守从简原则,用则拿,不用则弃。然后在where子句中进行相关连接替换,如无法替换,可在where后面的相对应字段添加聚簇索引。
第三个问题是以上方案都不可行该如何解决?
到这一步,则一般建议采用分库分表解决方案,或者更换非关系型数据库。
好了,以上三个解决方案已经全部列出。