数据库优化
优化原则
1、数据库在设计的时候严格按照范式设计
2、使用字段数据类型的时候,尽可能的用小的数据类型
3、在数据库里面开启慢查询,分析哪些SQL语句执行比较慢,
将比较慢的SQL语句查询使用日志记录方式记录下来再进行分析和处理
4、使用explainSQL语句进行分析,分析为什么比较慢,
从而改写SQL语句或者针对需要的字段适当的加上索引
5、应用层面进行优化,例如加上缓存(memcached和redis),或者页面静态化,
让后面的请求不再查询数据库,这样效率更高,将效率分摊至前端方便扩展应用服务器
6、在架构层面进行调整,可以使用主从、读写分离的方式减轻数据库服务器的压力,
避免在单台机器上过度消耗资源
7、必要的时候,可以对数据表进行纵切(垂直分表),将不经常读的内容和经常操作的内容放置不同表中。
不读取非必须内容,降低磁盘IO
8、可以使用mysql表分区技术,将一个表分成多个不同的文件。
9、如果内容特别多可以采用数据库中间件或者类似于分库分表分机器的技术,
将表分至不同的数据库或者数据库实例(服务器)中
10、选择存储引擎的时候,可以按照一些具体业务场景选择存储引擎。
引擎都有各自的特性,你可以使用不同的引擎处理不同的业务
11、尽量不要使用or,like,搜索时加上主键,不用或者少用全文索引
12、如果非要使用全文索引,将全文索引专门建立全文索引服务器
13、优化相关配置的参数
14、可以提升机器性能例如用固态硬盘、用更大的内存
具体操作
存储引擎
根据需要,选择合适的存储引擎
数据表设计
三范式:数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的数据库是需要满足一些规范的来优化数据存储方式。在关系型数据库中这些规范就可以称为范式。
慢查询
是mysql中自带的,你只要开启即可。开启之后,就会将执行比较慢的语句记录到日志中,这个标准通过mysql来自己定制
查看慢查询时间 show variables like 'long_query_time'; 查看是否开启慢查询 show variables like 'slow%'; 开启慢查询: