在PHP开发中用到的数据库中MySql是最牛逼的数据库,没有之一……^_^相比Sqlite个人最喜欢的特性就是“支持多线程,充分利用 CPU 资源”,不像Sqlite那样,动不动就锁死,导致存储发生异常,特别是.NET开发桌面应用时,为了方便用了Sqlite,那真的是先甜后苦啊,有苦说不出的苦。MySql遇到比较多的就是商城系统、博客系统,订单和数据存储达到一定量级之后,会出现慢查询,这个问题在开发维护过程中谁也躲不过去。下面是常规的处理方...
1、硬件层相关优化1.1、CPU相关在服务器的BIOS设置中,可调整下面的几个配置,目的是发挥CPU最大性能,或者避免经典的NUMA问题:1、选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,跑DB这种通常需要高运算量的服务就不要考虑节电了;
2、关闭C1E和C States等选项,目的也是为了提升CPU效率3、Memory Frequency(内存频率)选择Maximum Performance(最佳性能);
4、内存设置菜单中,启用Node Interleaving,避免...
Mysql优化是一个老生常谈的问题,优化的方向也优化很多:从架构层;从设计层;从存储层;从SQL语句层;今天讲解一下从索引和字段:字段优化:① 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED;② VARCHAR的长度只分配真正需要的空间;③ 使用枚举或整数代替字符串类型;④ 尽量使用TIMESTAMP而非DATETIME;⑤ 单表不要有太多字段,建议在20以内;⑥ 避免使用NULL字段,很难查询优化且占用额外索引空...
1.1 前言 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。更多关于MySQL查询相关参照:http://www.cnblogs.com/clsn/p/8038964.html#_label6 系列文章。 图 - MySQL查询过程1.2 优化的哲学优化有风险,涉足需谨慎1.2.1 优化可能带来的问题优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。优化手段本来...
http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#index-merge-optimization原文:http://www.cnblogs.com/ribavnu/p/3541273.html
前言:在日常工作中,我们需要对查询较慢的SQL进行分析,这时我们就会用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描。-- 分析SQL
EXPLAIN SELECT * FROM zy_ticket_sw_classify WHERE industry_name = ‘石油开采‘; expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra描述:id:选择标识符;如果explain的...
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。图-MySQL查询过程
一、优化的哲学注:优化有风险,涉足需谨慎1、优化可能带来的问题优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统;优化手段本来就有很大的风险,只不过你没能力意识到和预见到;任何的技术可以解决一个问题,但必然存在带来一个问题的风险...
mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况。分析器可以更好的展示出不良 SQL 的性能问题所在。 下面我们举例介绍一下 MySQL SQL Profiler 的使用方法: 首先,开启 MySQL SQL Profilermysql> SELECT @@profiling; +-------------+ | @@profiling | +-------------+ | 0 | +-------------+ 1 row in set (0.00 sec) mysql> SET profiling = 1; Query OK, 0 rows affected (0.00 sec) mysql> S...
当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议。许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项。这篇文章的目的在于给你一份非常重要的配置项清单。我们曾在几年前在博客里给出了这样的建议,但是MySQL的世界变化实在太快了!写在开始前…即使是经验老道的人也会犯错,会引起很多麻烦。所以在盲目的运用这些推荐之前,请记住下面的内容:一次只...
thread_cache_size功能在mysql数据库配置文件中是非常重要的一项功能了,如果对thread_cache_size优化做得好我们可以让服务器跑得非常快,设置不好就会发现很小访问量就非常的卡哦。thread_cache_size查询进程使用情况代码如下 复制代码
mysql> show global status like ‘Thread%’;
+——————-+———-+
| Variable_name | Value |
+——————-+———-+
| Threads_cached | 26 |
| Threads_connected | 510 |
| Thre...
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46591673索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;MYISAM和InnoDB存...
1.更小的通常更好选择不会超过范围的最小类型2.简单就好例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较比整形比较更复杂。3.尽量避免null如果查询中包含可为null的列,对mysql来说更难优化,因为可为null的列使得索引,索引统计和值比较 都更复杂。可为null的列会使用更多的存储空间,在mysql里也需要特殊处理。当可为null的列被索引时,每个索引记录需要一个额外的字节,在myISAM里甚至还可能导致固定大...
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.2000条以内的记录不建议做索引 3.最佳左前缀原则,联合索引的B+Tree是按照第一个关键字进行索引排列的。 4.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 5.SQL语句中IN包含的值不应过多 6.SELECT语句务必指明字段名称 7.将可能失效的SQL语句放在where的后面 8.不建议使用%前缀模糊查...
Web项目中,当Java或者Go等语言速度提升到瓶颈的时候,我们需要关心MySQL的优化可以优化的方面有很多:设计表、负载均衡、读写分离、SQL语句优化等 (1)IP地址设计例如我们需要存储IP地址:192.168.1.1第一反应是选用VARCHAR(15);但是更好的方式是INT UNSIGNED(占用四个字节)因为:IP地址可以很容易地转换为无符号整数仔细观察IP地址,四部分都是0-255的数字,1个字节(8位)恰好可以表示0-255的整数而MySQL有函数:inet_ato...
介绍使用pt-query-digest搜集慢查询日志。将数据存储在两张表中:global_query_review 和 global_query_review_history。然后使用anemometer将pt-query-digest 搜集的数据以web形式展现出来,方便查询分析。1、准备条件:a.LNMP平台b.MySQL开启慢查询 slow_query_log=on #开启数据库的慢日志 long_query_time=0.1 #时间超过0.1s的SQL记录日志中 log-slow-queries=/usr/local/mysql/data/mysql_slow.log #慢日志存放路...