内容较多,可先收藏,目录如下:一、什么是主从复制二、主从复制的作用(重点)三、主从复制的原理(重中之重)四、三步轻松构建主从五、必问面试题干货分析(最最重要的点)一、什么是主从复制(技术文):主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。二、主从复制的作用(好处,或者说为什么要做主从)重点!:1、做数据的热备,作为后备数据库,主数据库服务器故...
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 一、优化的哲学注:优化有风险,涉足需谨慎1、优化可能带来的问题1、优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统;2、优化手段本来就有很大的风险,只不过你没能力意识到和预见到;3、任何的技术可以解决一个问题,但必然存在带来一个问题的风险;4、...
二、原则总结
原则1、仅列出需要查询的字段,这对速度不会明显的影响,主要是考虑节省应用程序服务器的内存。
原来语句: select * from admin
优化为: select admin_id,admin_name,admin_password from admin
原则2、尽量避免在列上做运算,这样导致索引失效。
原语句: select * from admin where year(admin_time)>2014
优化为: select * from admin where admin_time> ‘2014-01-01′
原则3、使用JOIN 时候,应该用小的结果驱...
所谓知己知彼,百战不殆。既然要优化数据库,我们就首先要知道,优化的是什么,或者说:什么因素影响了数据库的性能。影响数据库因素主要因素总结如下:sql查询速度网卡流量服务器硬件磁盘IO以上因素并不是时时刻刻都会影响我们的数据库性能,而就像木桶效应一样:如果其中一个因素严重影响性能,那么整个数据库性能就会严重受阻。另外,这些影响因素都是相对的,例如:当数据量并没有达到百万千万这样的级别,那么sql查询速度也许...
1.从服务器硬件考虑2.通过对缓存的设置3.对索引进行优化4.对sql语句进行优化5.通过对配置文件来优化首先要知道mysql的运行状况show status;show status like ‘com_select%‘show status like ‘com_insert%‘show status like ‘com_update%‘可以判断写多或读多,从而根据实际情况来更改存储引擎。查询使用时间 单位sshow global STATUS like ‘%uptime%‘查看当前连接数show GLOBAL status like ‘%connections%‘show processl...
原文:http://www.cnblogs.com/meibao/p/6237425.html
表结构如下,文章只有690篇。文章表article(id,title,content)标签表tag(tid,tag_name)标签文章中间表article_tag(id,tag_id,article_id) 其中有个标签的tid是135,查询标签tid是135的文章列表。690篇文章,用以下的语句查询,奇慢:select id,title from article where id in(
select article_id from article_tag where tag_id=135
)其中这条速度很快:select article_id from article_tag where tag_id=135查询结果是五篇文章,...
基本上通过索引来解决 。 通常索引键在where , group by , order by 相关的列 一个表只能用一个索引(查询的时候)所以当要执行复杂查询时最好使用联合索引就是 index (a,b,c,d,....)where 需要注意的事,索引是左到右使用的 , 如果是 index(a,b,c) 那么可以1. where a = x and b = y and c = z 2. where a = x order by b,c 3 where a = x group by a,b,cgroup by 需要注意的事 :如果是多表查询,group by 索引只能group 最后的那个...
一. 表的优化
1. 选择合适的数据引擎
MyISAM:适用于大量的读操作的表
InnoDB:适用于大量的写读作的表2.选择合适的列类型
使用 SELECT * FROM TB_TEST PROCEDURE
ANALYSE()可以对这个表的每一个字段进行分析,给出优化列类型建议3.对于不保存NULL值的列使用NOT
NULL,这对你想索引的列尤其重要4.建立合适的索引5.使用定长字段,速度比变长要快 二. 充分利用索引
1.尽量比较数据类型相同的数据列2.尽可能地让索引列在比较表达式中独立...
1,如果整形数据没有负数,如ID号,建议指定为UNSIGNED无符号类型,容量可以扩大一倍。2,建议使用TINYINT代替ENUM、BITENUM、SET。3,避免使用整数的显示宽度,也就是说,不要用INT(10)类似的方法指定字段显示宽度,直接用INT。4,字符串的长度相差较大用VARCHAR;字符串短,且所有值都接近一个长度用CHAR。5,所有字段均定义为NOT NULL。6,将大字段、访问频率低的字段拆分到单独的表中存储,分离冷热数据。7,禁止在数据库中存储...
如何实时查看mysql当前连接数? 1、查看当前所有连接的详细资料:mysqladmin -uadmin -p -h10.140.1.1 processlist 2、只查看当前连接数(Threads就是连接数.):mysqladmin -uadmin -p -h10.140.1.1 status mysql -u root --初始进入mysqlmysql -u root -p password --更改root用户进入MySQL的密码修改之后以后登录输入:mysql -u root -p 进入之后SHOW MASTER LOGS; --查看当前数据库服务的日志文件信息exit --退出MySQL SHOW DA...
1 Mysql数据库的优化技术 1、mysql优化是一个综合性的技术,主要包括 1. 表的设计合理化(符合3NF) 2. 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] 3. 分表技术(水平分割、垂直分割) 4. 读写[写: update/delete/add]分离 5. 存储过程 [模块化编程,可以提高速度] 6. 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] ...
MySQL 优化专题拓展 --王耀宇 一、SQL优化 1、分析和定位策略 1、通过 show status 了解各种 SQL 的执行频率 2、定位执行效率低的 SQL 语句:①通过慢日志定位;②使用 show processlist 命令查看当前在进行的线程 3、通过 explain 分析低效 SQL 4、通过 show profile 分析 SQL 5、通过 trace 分析优化器的选择 2、优化 1、大批量插入数据,使用如下方式能快速导入大量数据(在 myisam 引擎下速度更为...
Mysql在多个LEFT JOIN的情况下使用ORDER BY排序,就算是其中一个表的主键也仍然使用file sort排序,数据量多的话就相当的慢。优化前语句SELECT * FROM a LEFT JOIN b ON a.id=b.a_id ORDER a.id DESC优化后语句SELECT * FROM a LEFT JOIN b ON a.id=b.a_id JOIN (SELECT id FROM a ORDER BY id DESC) a_order ON a.id = a_order.id实际工作中100W+的几个表使用LEFT JOIN要20分钟才能得到结果,语句优化后3秒。原文:http://www.cnb...
MySQL 优化表关联查询时务必遵循 小表驱动大表 原则;使用查询语句 where 条件时,不允许出现 函数,否则索引会失效;使用单表查询时,相同字段尽量不要用 OR,因为可能导致索引失效,可以使用 UNION 替代;LIKE 语句不允许使用 % 开头,否则索引会失效;组合索引一定要遵循 从左到右 原则,否则索引会失效;索引不宜过多,根据实际情况决定,尽量不要超过 10 个;每张表都必须有 主键,达到加快查询效率的目的;分表,可根据业务字...