如何写出高效的SQL语句(从建表到查询) 建表时可以得出以下优化建议 1、 数据类型尽量用数字型,数字型比字符型的快 2、 选择正确的表引擎 MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都
分类:
数据库 时间:
2016-02-21 21:21:41
阅读次数:
292
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的
分类:
数据库 时间:
2016-02-15 14:45:42
阅读次数:
187
MySQL优化要点硬件选型优化CPU主频高,支持多线程1.2、磁盘SAS磁盘(RAID10)或SSD磁盘(RAID1)1.3、主板修改主板配置参数,打开磁盘写缓存,关闭磁盘读缓存,以免影响数据插入速度;尽量使用独立RAID,不用主板集成RAID卡1.4、网卡主机多网卡BOND绑定,保证网络无故障;配备千兆..
分类:
数据库 时间:
2016-02-11 06:51:01
阅读次数:
366
可能导致mysql优化器选择错误的执行计划的原因如下: A:统计信息不准确,mysql依赖存储引擎提供的统计信息来评估成本,但有的存储引擎提供的信息是准确的,有的引擎提供的可能就偏差很大,如:innodb因为其MVCC的架构,并不能维护一个数据表的行数的精确统计。 B:执行计划中的成本估算不等同于实
分类:
数据库 时间:
2016-02-03 10:41:58
阅读次数:
203
介绍使用pt-query-digest搜集慢查询日志。将数据存储在两张表中:global_query_review和global_query_review_history。然后使用anemometer将pt-query-digest搜集的数据以web形式展现出来,方便查询分析。1、准备条件:a.LNMP平台b.MySQL开启慢查询slow_query_log=on#开启数据库..
分类:
数据库 时间:
2016-01-30 18:38:11
阅读次数:
1280
此文是根据杨尚刚在【QCON高可用架构群】中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处。 杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计。前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的
分类:
数据库 时间:
2016-01-29 00:19:06
阅读次数:
375
MySQL 配置: 清空查询缓存 reset querry cache; 当写入时,使用 innodb_flush_method=O_DIRECT 来避免双缓冲. 不要混用 innodb_thread_concurrency 和 thread_concurrency 参数– 这2个值是不兼容的. 保
分类:
数据库 时间:
2016-01-27 21:19:22
阅读次数:
256
接触MySQL已经有一段时间了,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器。最近我就打算了解下几个优化MySQL中经常用到的工具。今天就简单介绍下EXPLAIN。环境准备Explain 介绍idselect_typetabletypepossible_keyskeykey_lenrefr...
分类:
数据库 时间:
2016-01-23 18:17:27
阅读次数:
246
分区的作用:数据库性能的提升和简化数据管理在扫描操作中,mysql优化器只扫描保护数据的那个分区以减少扫描范围获得性能的提高。分区技术使得数据管理变得简单,删除某个分区不会对另外的分区造成影响,分区有系统直接管理不用手工干预。查询当前的mysql数据库版本是否支持分..
分类:
数据库 时间:
2016-01-22 18:31:30
阅读次数:
287
优化器选择不适用索引的情况有时候,有乎其并没有选择索引而去查找数据,而是通过扫描聚集索引,也就是直接进行全表的扫描来得到数据。这种情况多发生于范围查找、JOIN链接操作等情况。例如SELECT * FROM orderdetails WHERE orderid>10000 and orderid10...
分类:
数据库 时间:
2016-01-20 22:34:21
阅读次数:
206