MySQL阶段七——MySQL优化

mysql优化

-一、硬件优化(优化的主要点)

01.CPU----最好是64位的,例:8-16颗CPU

02.内存----例:96G-128G,3-4个实例

03.disk----数量越多越好,性能:ssd(适合高并发业务)>sas(普通上线业务)>sata(适合线下)

RAID----部署合适的RAID

04.网卡----多块网卡bond,以及buffer,tcp优化

-二、软件优化

01.操作系统----x86_64

02.软件:mysql,编译优化

-三、my.cnf里面参数优化 (一般效果不是很明显)

01.使用调优工具

-四、sql语句的优化

01.索引优化

a.抓取出慢查询sql

b.可以使用慢查询日志分析工具

(对于查询慢的select语句,可以使用explain查看查询;一般在唯一值或者重复比较少的列上面简历索引,如果多条件查询中的条件,全部都是唯一值少,重复较多,这时候可以采用联合索引,对于多个列一起进行建立索引)

c.晚上零点分析慢查询,发到核心开发,dba分析。

02.拆分大的复杂的sql语句

子查询,jion查询。

03.数据库是存储数据的地方不是计算数据的地方

04.对于LIKE "%XXXIII%"之类的前后都是%的查询,sql索引不起作用(一般是一些搜索会出现这种问题)

解决:a.从业务上,可以实现用户登录后再查询或者搜索,减少搜索次数

b.如果大量频繁的搜索,一般是爬虫在爬,这时就可以分析web日志,将频繁查询的IP封掉

c.配置主从同步,程序实现读写分离

d.在数据库前端加memcached缓存服务器

e.不用数据库进行查询,用搜索软件

-五、架构上的优化

01.业务拆分,搜索功能,like "%XXX%",一般不用mysql数据库

02.数据库前端必须加cache,例如:memcached

03.业务拆分,某些业务应使用nosql持久化存储

比如:粉丝关注、好友关系等

04.动态数据静态化

05.数据库集群与读写分离,一主多从

06.单表过多,进行拆库拆表

-六、流程,制度,安全优化


时间: 2024-10-13 09:03:08

MySQL阶段七——MySQL优化的相关文章

MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. 什么是子查询:当一个查询是另一个查询的子部分时,称之为子查询. 2. 查询的子部分,包含的情况: a) 目标列位置:子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询只能返回一个字段 ( [Err] 1242 - Subquery returns more than 1

美图秀秀DBA谈MySQL运维及优化

https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2&sn=a0fc08dbb8ce399f0d4cd70bff5b1366&scene=0&key=62bb001fdbc364e56abc83575de147aa1f6fe32d5f4bad7190eadb03350bcfba18b0c9740d43855a5b45e5286bd457cd&ascene=7&uin

《深入浅出MySQL数据库开发、优化于管理维护》基础篇学习笔记

MySQL数据库物理文件默认存放位置:C:\ProgramData\MySQL\MySQL Server 5.5\data\MySQL通过配置my.int的datadir属性来指定数据库的物理存放位置. 一.DDL语句:1.创建数据库:create database test; 2.删除数据库:drop database test; 3.描述表:desc emp; 4.删除表:drop table emp; 5.修改表:(1)修改表类型:alter table emp modify ename

mysql的一些配置优化

[mysqld]lower_case_table_names=1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0 #默认存储引擎default-storage-engine=INNODB ###youhua #skip-innodb M

[MySQL Reference Manual] 8 优化

8.优化 8.优化... 1 8.1 优化概述... 1 8.2 优化SQL语句... 1 8.2.1 优化SELECT语句... 1 8.2.1.1 SELECT语句的速度... 1 8.2.1.2 WHERE子句优化... 1 8.2.1.3 Range优化... 1 8.2.1.4 索引合并(Index Merge)优化... 1 8.2.1.5 引擎Pushdown条件优化... 1 8.2.1.6 索引条件Pushdown优化... 1 8.2.1.7 使用索引扩展... 1 8.2.

MySQL索引分析与优化

索引分析 - 准备 先创建三张表:tb_emp(员工表)tb_dept(部门表)tb_desc(描述表) 1. tb_emp(员工表) DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `deptid` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=I

【mysql】索引的优化

写在前面的话 查询容易,优化不易,且写且珍惜 mysql结构 从MySQL逻辑架构来看,MySQL有三层架构,第一层连接,第二层查询解析.分析.优化.视图.缓存,第三层,存储引擎 MySQL有哪些索引类型 ? 从数据结构角度 1.B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理 2.hash索引:a 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询b 其检索效率非常高,索引

MySQL之schema设计优化

良好的逻辑设计和物理设计是高性能的基石,应该根据系统要执行的查询语句来设计 schema.这往往需要权衡各种因素. 例如:反范式的设计可以加快某些类型的查询,但同时可能使另一些类型的查询变慢.比如添加计数表和汇总表是一种很好的优化查询的方式, 但是这些表的维护成本会很高.MySQL独有的特性和实现细节对性能影响也很大. 选择优化的数据类型的简单原则: 1.更小的通常更好 一般情况下,应该尽量使用可以正确存储数据的最小数据类型. 2.简单就好 简单数据类型的操作通常需要更少的cpu周期. 3.尽量

MySQL数据库高并发优化配置

from:http://www.111cn.net/database/mysql/59776.htm MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化. 一.服务器硬件对MySQL性能的影响 ① 磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变. MySQL每秒钟都在进行大量.复杂的查询操作,对磁盘的读写量可想而知.所以,通常认为磁盘I/O是制约MySQ