美文网首页
有哪些常见的数据库优化方法?

有哪些常见的数据库优化方法?

作者: 夜半清醒3 | 来源:发表于2018-05-22 18:23 被阅读0次

性能优化

表的设计合理化,符合三大范式(3NF)

1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF)

2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计可以做到。

添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]

较频繁的作为查询条件字段应该创建索引;

唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件;

更新非常频繁的字段不适合创建索引

不会出现在WHERE子句中的字段不该创建索引

分表技术(水平分割、垂直分割);

读写[写: update/delete/add]分离;

存储过程 [模块化编程,可以提高速度];

对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ];

mysql服务器硬件升级;

定时的去清除不需要的数据,定时进行碎片整理(MyISAM)。

SQL语句优化

通过show status命令了解各种SQL的执行频率;

定位执行效率较低的SQL语句-(重点select;

通过explain分析低效率的SQL;

确定问题并采取相应的优化措施。

添加索引

索引主要可以分为以下几种:

主键索引,主键自动的为主索引 (类型Primary);

唯一索引 (UNIQUE);

普通索引 (INDEX);

全文索引 (FULLTEXT) [适用于MyISAM] ——》sphinx + 中文分词 coreseek [sphinx 的中文版 ];

综合使用=>复合索引

可能使用到索引

对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。

对于使用like的查询,查询如果是 ‘%aaa’ 不会使用到索引, ‘aaa%’ 会使用到索引。

不使用索引

如果条件中有or,即使其中有条件带索引也不会使用。

对于多列索引,不是使用的第一部分,则不会使用索引。

like查询是以%开头

如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。否则不使用索引。(添加时,字符串必须’’)

如果mysql估计使用全表扫描要比使用索引快,则不使用索引。

相关文章

  • 有哪些常见的数据库优化方法?

    性能优化 表的设计合理化,符合三大范式(3NF) 1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解...

  • Java中常见面试题一(中等)

    Java中常见面试题一(中等) SQL语句优化有哪些?数据库的优化怎样优化? 对查询进行优化,应尽量避免全表扫描,...

  • 稍有难度

    1、jvm对频繁调用的方法做了哪些优化? 2、常见的攻击手段有哪些?如何防范? 3、restful api有哪些设...

  • 稍微有点难度的10道java面试题,你会几道?

    1、jvm对频繁调用的方法做了哪些优化? 2、常见的攻击手段有哪些?如何防范? 3、restful api有哪些设...

  • 2019-02-21问题(二)

    题目来源:python常见面试题——爬虫&数据库部分 题目: 1. 什么是关联查询,有哪些? 2. 数据库的优化?...

  • 性能优化

    1.常见性能优化方法有哪些?给出不少于5条实际可行的方案? 为什么要性能优化?如果只是一个js,css,html你...

  • 海量数据处理问题

    常见的方法有Hash法,位图法,Bloom-filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双...

  • 海量数据处理面试题

    1、常见海量数据处理方法 hash、bit-map(位图法)、bllomfilter、数据库优化、倒排索引、外排序...

  • Oracle1

    一、为什么要有数据库 二、有哪些类型的数据库 三、常见的关系型数据库 四、常见数据库产品的特征 五、Oracle版...

  • 附录A: 常见问题

    陆续整理数据库和模型相关的常见问题(保持更新~) 内置支持的数据库有哪些? Db类封装的方法看起来很简单,是如何实...

网友评论

      本文标题:有哪些常见的数据库优化方法?

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