1. 说说分区表的主要好处是什么,为什么会有这些好处。

分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。

从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。

对于超级大表来说,分区可以大大提高性能,不仅是操作方面的,还有维护管理方面

好处:访问路径减少,查询更快

操作方便(truncate、drop、split、add、exchange)

增加可用性,某个分区坏掉了,其他分区还可以使用

IO均衡,可以把不同分区放到不同磁盘上

l 减少访问路径,查询更快:只查看对应分区的数据

l 操作方便(truncate、drop、split、add、exchange),直接操作分区数据,不需要操作全表数据!

truncate:alter table part_tab_trunc truncate partition p1 ;

drop:alter table part_tab_drop drop partition p1 ;

split:alter table part_tab_split SPLIT PARTITION P_MAX at (70000) into (PARTITION p7 ,PARTITION P_MAX);

Drop:--注意:必须要把默认分区去掉,再add分区,再增加默认分区,这里要担心丢数据!

alter table part_tab_add drop partition p_max;

alter table part_tab_add add PARTITION p6 values less than (60000);

alter table part_tab_add add PARTITION p_max values less than (maxvalue);

exchange:alter table part_tab_exch exchange partition p1 with table normal_tab including indexes update global indexes;

2. 说说全局临时表的主要好处是什么。

l 自动清理数据

提交后自动清理:

断开Session自动清理:

l 不同session独立

l 产生日志较少

3. 举例说明一下什么时候使用分区表性能比普通表还差。

如果查询的列不是分区的列,那么分区索引会导致性能更差,因为有多少个分区,就要查询多少个索引。设计的时候,要注意根据最常用的查询列进行分区,否则不但不会提高性能,反而会使性能下降!

而普通表的普通索引只要查一次就可以了

表设计与SQL优化的更多相关文章

  1. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...

  2. MySql数据表设计,索引优化,SQL优化,其他数据库

    MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...

  3. 数据库设计与SQL优化的建议

    1. 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数据窗口使用 ...

  4. 【转】避免全表扫描的sql优化

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描:· 使用ANALYZE TABLE tbl_name为扫 ...

  5. 避免全表扫描的sql优化

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引:  .尝试下面的技巧以避免优化器错选了表扫描: ·   使用ANALYZE TABLE tbl_na ...

  6. 简版会员私信表设计及sql 私信列表查询

    先上下表结构和数据 DROP TABLE IF EXISTS `message`; CREATE TABLE `message` ( `id` int(11) NOT NULL AUTO_INCREM ...

  7. 数据库的规范和SQL优化技巧总结

    现总结工作与学习中关于数据库的规范设计与优化技巧 1.规范背景与目的 MySQL数据库与 Oracle. SQL Server 等数据库相比,有其内核上的优势与劣势.我们在使用MySQL数据库的时候需 ...

  8. MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象

    我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...

  9. Oracle 建立索引及SQL优化

    数据库索引: 索引有单列索引,复合索引之说,如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经 ...

随机推荐

  1. 前端--关于CSS盒模型

    CSS样式规则的学习是很繁琐和枯燥的,因为它不像物理.数学或者其他编程语言一样有一些基本概念.有一些基本公理或者规则,其他所有的表现都是概念在这些公里或者规则之下的逻辑游戏,CSS是有一些基本概念,但 ...

  2. struts1面试题

    由于找了很久的工作都没有找的,只能四处收集那个面试题的.和看面试题的 还有那个记忆力也不是很好了的,而那些公司面试的时候总会有一个面试题的!   在这里分享给大家(那个本来是想上传文件的,但是找不到的 ...

  3. PHP学习笔记十七【面向对象定义类】

    <?php class Person{ public $name; public $age; public function speak(){ echo "Hello world&qu ...

  4. 南阳oj-喷水装置(一)

    喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以 ...

  5. 如何判断CPU的位数

    CPU是16位,32位,还是64位,主要指的是数据总线(data bus)有多少位,16位数据总线表示CPU一次可以从内存取2个byte的数据,32位数据总线表示CPU一次可以从内存取4byte数据, ...

  6. python 连接操作数据库(二)

    一.我们接着上期的博客继续对ORM框架进行补充,顺便把paramiko模块也给大家讲解一下: 1.ORM框架: 在连接操作数据库的第一个博客中也已经说了,sqlalchemy是一个ORM框架,总结就是 ...

  7. Nginx的Upload上传模块

    前段时间做一个项目,需要上传文件,差不多需要20M左右,普通用php处理会比较麻烦,经常超时,而且大量占用资源.于是搜索了下,决定用nginx的upload上传模块来处理. 你可以在这里:http:/ ...

  8. c3p0链接池

    频繁的链接数据库是非常消耗性能的,所以就采用了将一定量的链接保存在一个池中,这个池我们叫做链接池. 详细请看:http://baike.baidu.com/link?url=dlTW-fTS3N_-j ...

  9. xargs mv命令使用方法:ls *.mp3 |xargs -i mv {} /tmp

    ls  *.mp3 |xargs -i  mv {} /tmp 或者 find . -name "*.mp3" -exec mv {} /tmp \;

  10. cf478A Initial Bet

    A. Initial Bet time limit per test 1 second memory limit per test 256 megabytes input standard input ...