博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
08 MySQL存储引擎
阅读量:4980 次
发布时间:2019-06-12

本文共 1575 字,大约阅读时间需要 5 分钟。

查询当前默认存储引擎
    SHOW VARIABLES LIKE 'table_type' ;
    
查询当前数据库支持的引擎有哪些 :
    SHOW ENGINES \G   -- 推荐这种 , 显示更多信息
    SHOW VARIABLES LIKE 'have%' ;
 
建表时指定存储引擎
    CREATE TABLE tbl_name (
        col_1 BIGINT(20) NOT NULL AUTO_INCREMENT
        ,col_2 VARCHAR(15)
        , PRIMARY KEY(col_1)
    ) ENGINE = MyISAM DEFAULT CHARSET = gbk ;
    
修改已有表的存储引擎
    ALTER TABLE tbl_name SET ENGINE = InnoDB ;
    
展示建表语句
    SHOW CREATE TABLE tbl_name \G
    
给MEMORY存储引擎的表指定 HASH/TREE索引
    CREATE INDEX xxx_index USING HASH/TREE ON tbl_memory(col_xxx) ;
 
查询索引信息
    SHOW INDEX FROM tbl_memory \G
    
更换索引(需要两步操作:先drop再create)
    DROP INDEX xxx_index ON tbl_memory ;
    CREATE INDEX xxx_else_index USING BTREE on tbl_memory(col_xxx) ;
    
MEMORY 使用心得 :    
    MySQL启动时 使用 --init-file 选项 , 利用 `INSERT INTO .. SELECT .. ` 或者 `LOAD DATA INFILE` 语句 , 可以从持久稳固的数据源加载数据 .
    当不需要MEMEOY表时 , 执行 `DELETE FROM` 或 `TRUNCATE TABLE` 或 `DROP TABLE` 语句来释放内存 .
    
MERGE存储引擎的使用 :
    CREATE TBALE xxx_01 ..
    CREATE TABLE xxx_02 ..
    
    CREATE TABLE xxx_merge(
        col_1 xxx
        ,col_2 xxx
        ,INDEX (xxx)
    ) ENGINE = merge UNION(xxx_01 , xxx_02) INSERT_METHOD=LAST
    
    向xxx_01 /xxx_02 表中跟新数据都会影响 xxx_merge表 ,
    而向xxx_merge表中插入数据的时候 , 会影响xxx_02表 , 因为INSERT_METHOD = LAST ;
    并且 即使 插入表的数据 是符合 xxx_01 的 , 比如时间 , 也不会智能的插入到xxx_01中 ,这也是和分区表不同的地方.
    
 
存储引擎的选择 :
    MyISAM : 读和插入 操作多 , 而更新和删除操作少 , 并且对事务完整性/并发性 要求不是很高的 场景
    InnoDB : 适合 并发性/事务完整性 要求高 , 有许多 更新/删除操作的 场景 ; 提供了完整提交(commit) 和事务回滚(rollback)
    MEMORY : 数据保存在缓存中 , 可以提供快速定位. 缺陷 大小有限制 , 适合更新不频繁的小表 . 还要注意 数据库异常 后 数据是可以恢复 ;
    MERGE  : 用于将一系列等同的MyISAM表 以逻辑方式组合在一起,并作为一个对象引用它们.
优点在于可以突破对单个MyISAM表大小的限制.
通过将不同的表分布在多个磁盘上,可以有效地改善MERGE表的访问效率.对数据仓储等VLDB环境十分适合.
    
 
    
    
    
     

转载于:https://www.cnblogs.com/lmxxlm-123/p/11131959.html

你可能感兴趣的文章
PHP实现的快速排序
查看>>
AE属性表操作
查看>>
2进制_8进制_16进制之间快速转换的技巧.txt
查看>>
Python学习(五)函数 —— 内置函数 lambda filter map reduce
查看>>
[转] PDB文件概说
查看>>
再坚持一年多就写代码到40岁了,一直坚持.NET也没什么大错,傻B青年快乐多重新回归博客园...
查看>>
hbase安装配置
查看>>
How to publish a WordPress blog to a static GitLab Pages site
查看>>
面试人生
查看>>
JAVA多线程之当一个线程在执行死循环时会影响另外一个线程吗?
查看>>
红黑树总结(1)
查看>>
学习笔记
查看>>
Mindjet.MindManager“参数错误”解决办法,适用于9.0、10.0和14.0
查看>>
第7章学习小结
查看>>
Continue Posting, Keep Fighting
查看>>
C# .net MD5加密函数
查看>>
Spring Cloud 入门 之 Config 篇(六)
查看>>
I/O多路复用
查看>>
Spring Cloud Eureka 集群搭建 - 以及发现一个 “直觉BUG”
查看>>
Quartz使用总结
查看>>