美文网首页
MySQL高级使用和特性

MySQL高级使用和特性

作者: lookphp | 来源:发表于2017-11-20 14:47 被阅读80次

    问题:

    • 索引
    • 如何分区
    • 数据库优化?
    • 主从
    • 如何读写分离
    • 如何设计表,如日增百万
    • sql的执行步骤
    • 如何查看索引被使用

    【干货】MySQL 5.7 多实例(多进程)配置教程 启动多个进程去取数据,实现并发。

    mysql引擎:

    如何设计表?
    1、根据实际的产品设计
    2、抽象
    主表 辅表 主表
    商品 关系表 品牌

    第一范式 第二范式 (必须遵循)
    第三范式 反范式

    tinyint 类型,男女
    smallint 端口
    不要用ID作为用户ID,防止被猜出用户数量。
    数据转换?

    float单精度
    bigint*1000,把小数点后三位算出来。

    时间戳:1970-01-01
    早期做国际化,用时间戳date_format()转化。
    但是,生日怎么办? 用datetime
    所有的时间类型,均设计为数字类型的。

    枚举:ENUM()。

    Connection Pool :类似php-fpm,检查连接最大数,用户名等
    SQL Interface:SQL/视图等
    Parser:检查语法错误
    Optimizer:优化查询,判断是否使用索引,left join 可能会被替换为inner join (mysql的优化器做的并不够好)
    Cache&buffer

    Memory 内存级别
    Merge 数据分表(鸡肋,底层使用的是myisam)

    文件系统

    1. MySQL的体系结构

    1. 什么是体系结构?
      部件+联系(部件之间协同工作)
      了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的。--------TechTarget中国原创内容,原文链接地址: http://www.searchdatabase.com.cn/showcontent_57918.htm
    2. MySQL的部件有哪些?
      查看官方网站的逻辑架构图。


      MySQL逻辑架构图
    3. 各个部件的执行顺序是什么?

    2. MySQL的存储引擎

    1. 面试时,一般都会问到myisam和innodb两个存储引擎的区别,你是怎么回答的?

    答:读操作多的时候用myisam,innodb支持事务,myisam不支持事务,或许还有别的吧?是不是感觉知道点,但是又没办法完全说清楚。 如果面试官在追问下,为什么myisam读的时候快呢?是不是觉得有点那什么~

    这时候如果我们用类比的方法来比较,比如在问到人和人之间的区别是什么的时候,我们一般会从他们的年龄、性别、身高、性格、工作等方面来比较?

    同样,myisam和innodb也有这样的类比因素或特征。
    我们主要从数据类型、锁、索引、事务四个方面进行比较即可。

    • 数据类型:基本一致,可不比较,但要了解在业务中存储字段时要选择合适的类型;
    • 锁机制
    • 索引
    • 事务

    下面会从锁、索引、事务三方面来讲myisam和innodb存储引擎的区别。
    1、了解myisam存储引擎的 锁、索引、事务。

    2、了解innodb存储引擎的 锁、索引、事务。

    3、事务的隔离级别。

    • read uncommitted (未提交读)
    • read committed (提交读)
    • repeatable read (可重复读)
    • serializable(可串行化)

    3. MySQL驱动与API


    4. MySQL索引


    5. SQL语句优化

    问题:查询语句select * 比 select id 好吗?为什么?
    这里需要了解sql查询语句的 "执行顺序"。比如下面这句,你觉得它的执行顺序是什么:

    select * from user u left outer join group g on u.uid=g.uid where status=0 order by sortorder;
    

    6. MySQL分表


    7. MySQL主从复制(Master-Slave)、读写分离(Master-Proxy)

    MySQL主从复制(Master-Slave)实践


    8. MySQL高可用方案

    9.MySQL中间件

    image

    相关文章

      网友评论

          本文标题:MySQL高级使用和特性

          本文链接:https://www.haomeiwen.com/subject/wzdvmttx.html