6.关于 MySQL

1.InnoDB 与 MyISAM 区别:
InnoDB: 数据存储在表空间,可通过配置分开
        对主键的查询性能高于其他存储引擎
        内部做了很多优化,从磁盘读取数据时自动在内存构建hash索引
        插入数据,自动构建缓冲区
        通过一些机制和工具真正的支持热备份
        支持崩溃后的安全恢复
        支持行级锁
        支持外键
        支持事务
MyISAM: 拥有全文索引,压缩,空间函数
        不支持事务,行级锁,不支持崩溃后的安全恢复
        表存储在两个文件,MYI,MYD
2.MySQL 事务处理
    事务在存储引擎层实现,所以一个事务当中,有多个存储引擎是不靠谱的
    在非事务的表上,执行事务操作,MySQL 不会报错。
3.索引创建原则
    适合建立索引的列,应该是出现在where子句,或者连接子句中。
    索引的基数越大,效果越好
    对字符串进行索引,应该建立一个前缀,节省空间
    为经常需要排序、分组和联合操作的字段建立索引
    最左前缀匹配原则,非常重要的原则

注意事项:
    复合索引遵循前缀原则
    like 查询, %不能放在前面
    如果索引比全表扫描慢,MySQL 会放弃索引
    如果 or 前的列有索引,or 后没有,索引不会用到
    列类型如果是字符串,一定要加引号,否则索引不生效
4.定位慢查询
    show profile
    show status
    show processlist
    explain
5. 唯一索引 , 普通索引, 可以有多个 null
   NULL是列的默认属性,查询中包含可为null的列,对MySQL 来说更难优化
   可为 null 的列需要更多的空间,当可为null的列被索引时,每个索引记录需要一个额外的字节。

主键和唯一索引区别
     1) 主键是主键约束+唯一索引
     2) 主键一定包含一个唯一索引,但唯一索引不是主键
     3) 唯一索引列允许空值,但主键列不允许空值
     4) 一个表只能有一个主键,但可以有多个唯一索引

http://blog.csdn.net/fwkjdaghappy1/article/details/7703974/

6.事务特性
    原子,一致,隔离,持久(ACID)
    隔离:(未提交读,提交读,可重复读,可串行化)
    MVCC
7. varchar 与 char 的区别
    varchar用于存储可变长度的字符串,如果长度小于等于255,用一个字节,
    如果长度大于255,用2个字节存储。varchar(10)用11个,varchar(1000)用2个。
    由于是变长,update 是可能需要额外的工作,页分裂。

    char是定长,存储是会剔除所有末尾的空格。varchar 不会
    适合存储短字符串,或者所有字符长度都差不多。
8. blog 和 text
    对这2个的排序是依据每个列的最前 max_sort_length 字节而不是整个字符串进行排序。
    或者可以  order by substring();
    memory 引擎不支持 blog,text,这就意味着如果查询中有这2个字段,就必须使用磁盘临时表。

http://blog.csdn.net/enlyhua/article/details/53164840 数据类型

http://blog.csdn.net/enlyhua/article/details/53224997 约束

http://blog.csdn.net/enlyhua/article/details/53232236 操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值