mysql

2018-10-10  本文已影响0人  3bd3c1497272

存储引擎架构

mysql最nb的特征是它的存储引擎架构,这种架构可以将查询处理与各类服务器任务与数据的存储/提取相分离

并发控制

锁策略

隔离级

MVCC的原理

存储引擎的选择

mysql存储引擎的选择是一个难点,需要好好整理一下,但最好是将所有的表都设置成一个存储索引


表的设计

为了加快数据的读取而添加的索引会减慢更新的速度 ---总是在找某种平衡
非规范化的架构能加快某些类型的查询,但却会让其他类型的查询变慢 ----长短表的设计
添加计数表和汇总表示优化查询的好方法,但是它们的维护代价很高 ----可以不用groupby提升很大的性能

mysql数据类型的选择

索引是在存储引擎中实现的,而不是在服务器层

mysql支持的索引类型

如何有效的使用索引

隔离列 ---- select * from user where age + 1 = 30 不使用索引
前缀索引与索引选择性

当使用缓存表或者是统计表的时候,你需要觉得是否要进行实时数据维护或者周期性重建

使用影子表

    drop table if exists my_summary_new,my_summary_old;
    create table my_summary_new like my_summary;
    rename table my_summary to my_summary_old,my_summary_new to my_aummary;

在分析mysql性能不好的查询时 需要通过查看以下2点来分析

    查明应用程序是否正在获取超过需要的数据,这通常意味着访问了过多的行或列   
     --更多的是通过业务方面来控制
    查明mysql服务器是否分析了超过需要的行 
    --访问数据的扫描情况(全表扫描  范围扫描  索引扫描)

mysql提升性能的策略

select count(*) from user 这样的sql很难进行优化,可以使用中间统计表来进行优化

上一篇 下一篇

猜你喜欢

热点阅读