首页 > 数据库技术 > 详细

mysql笔记

时间:2019-03-02 17:29:49      阅读:203      评论:0      收藏:0      [点我收藏+]

当key_cache_miss_rate(key_reads/key_read_requests*100%) 大于1%时需要增加 key_buffer_size (show global status like ‘key_read‘)

对于MyISAM 需要注意table_cache的设置 当这个不够用时MYSQL会采用LRU算法踢掉最长时间没使用的表,过小时,会反复打开关闭造成性能损失。过大 会消耗很多CPU 可以参考opemed_tables参数的值 一直增长就适当增加值

对于InnoDB 需要重点注意 innodb_buffer_pool_size参数

从表中删除大量行后,可运行OPTIMIZE TABLE TableName进行碎片整理

理论上,当MYSQL单表数据到达1000万条之后不管怎么优化sql语句还是会对性能有影响 ORACLE则是2亿

show variables like ‘%partition%‘;查看是否支持分区

alter table 表名 add partition(paratition 分区名 values 条件) DROP删除
分区后不支持外键 ,一个表最多1024个分区,使用分区最好不要使用主键否则影响性能,使用分区可能会使索引失效

分表(垂直分表,水平分表)之后对查询、分页和统计会遇到问题 通用方法是在程序中进行处理辅助视图

创建视图,MYSQL的只是一个虚拟表,只包含定义而不含有任何数据。

可以用一个简单的视图查询来代替冗长的SQL如果是Oracle还可以在视图中存放真的数据加快查询速度。

性能优势在Mysql中不存在,但是在Oracle等商业数据库中,视图支持更多的特性。、

mysql笔记

原文:https://www.cnblogs.com/jerrydailyphp/p/10461696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!