MySql
DanLongChen
学以致用
展开
-
MySql主从配置
配置文件存放自 etc/mysql/my.cnf 重启 /etc/init.d/mysql stop->start 如下配置:主库 ip=120.0.12.0 从库 ip=120.0.12.1 (使用容器修改的时候若没有vim等,可先把配置文件拷贝出来修改,再拷贝进去) [mysqld] server-id=1 配置数据库id log-bin=master-bin 开启二进...原创 2018-09-08 21:20:29 · 229 阅读 · 0 评论 -
MySQL性能优化之数据类型
MySQL支持非常多的数据类型,选择正确的类型对于获得高性能至关重要。以下几个原则有助于做出更好的选择:(1)更小的通常更好:尽量使用可以正确存储数据的最小的数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘,CPU和内存,并且处理时需要的CPU周期也更加少。但是这里需要注意选择的最小类型要包含业务的最大范围。(2)简单就好:简单数据类型的操作通常需要更少的CPU周期。例如:整型比字符...原创 2019-04-27 15:02:25 · 170 阅读 · 0 评论 -
加快ALTER TABLE操作的速度
MYSQL执行大多数修改表的方法是使用新的结构创建一张空表,从旧表中查询出所有的数据插入新表,然后再删除旧表。这样的操作需要花费很长的时间,尤其是内存不足而表又大,还有很多索引的情况下尤其严重。大部分的ALTER TABLE操作会导致MYSQL服务中断;可以使用的方法有两种:(1)在一台不提供服务的机器上执行ALTER TABLE,然后再进行主库切换。(2)使用影子拷贝。建立一张和源表无关...原创 2019-04-29 18:20:43 · 878 阅读 · 0 评论 -
mysql中update和select结合使用
在遇到需要update设置的参数来自从其他表select出的结果时,需要把update和select结合使用,不同数据库支持的形式不一样,在mysql中如下:update A inner join(select id,name from B) c on A.id = c.id set A.name = c.name;根据AB两个表的id相同为条件,把A表的name修改为B的sql语句就如上所...转载 2019-05-14 10:42:01 · 1124 阅读 · 0 评论 -
MySQL高性能索引策略
高性能索引策略:索引主要是用于WHERE过滤(1)使用独立的列:如果不使用独立的列,MySQL将无法使用索引,独立的列是指:索引列不能是表达式的一部分,也不能是函数的参数。如select name from test where id+1=5;id+1=5就不是独立的索引列,而是表达式的一部分。(2)前缀索引和索引选择性:有时候需要索引很大的字符串列,这会让索引变大且慢。这个时候可以只索引...原创 2019-05-15 10:06:46 · 183 阅读 · 0 评论 -
MySQL中的事务日志
事务日志可以提高事务的效率。使用事务的存储引擎在修改表的数据的时候,只需要修改其内存拷贝,再把该修改行为记录到持久化在磁盘中的事务日志中,而不是每次都将修改的数据本身持久化到磁盘中。事务日志采用追加的方式,因此写日志的操作是磁盘一小块区域的顺序IO,而不像随机IO那样需要在磁盘多个地方移动磁头,所以采用事务的方式相对来说快一点。事务日志持久化之后,被修改的数据就可以在后台被慢慢刷回到磁盘。若...原创 2019-05-12 14:21:16 · 375 阅读 · 0 评论 -
InnoDB存储引擎之Master Thread的工作方式
InnoDB 1.0.X版本之前的Master Thread:Master Thread拥有最高的线程优先级:后台有多个循环(主循环,后台循环,刷新循环,暂停循环)。在主循环中有两大部分的操作,分别是每秒执行的操作,每十秒执行的操作:每秒执行的操作:(1)redo log刷新到磁盘,即使这个事务没有提交(总是),这也很好的解释了为什么再大的事务提交时间总是很短。(2)合并插入缓冲:当前I...原创 2019-05-26 19:07:16 · 283 阅读 · 0 评论