美文网首页
mysql的各种优化

mysql的各种优化

作者: Uzero | 来源:发表于2016-08-19 22:48 被阅读0次

没索引与有索引的区别

优点:

当表中有大量记录时,若要对表进行查询,如果没用建立索引,搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;如果在表中针对一些字段建立了索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。

缺点:

当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

分页优化

MySQL的limit工作原理就是先读取n条记录,然后抛弃前n条,读m条想要的,所以n越大,性能会越差。

一般的分页做法,测试耗时 14.324s

SELECT * FROM center_card_number LIMIT 10000000,100;

优化后,测试耗时 9.123s

SELECT * FROM center_card_number INNER JOIN(SELECT num_id FROM center_card_number LIMIT 10000000,100)a USING(num_id)

优化前的SQL需要更多I/O浪费,因为先读索引,再读数据,然后抛弃无需的行。而优化后的SQL(子查询那条)只读索引(Cover index)就可以了,然后通过num_id读取需要的列

多使用触发器

表格拆分

大表垂直或者水平拆分。一般是水平拆分

尽可能的使用 NOT NULL

除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL。

Mysql 服务配置优化

MySQL参数的优化:内存中会为MySQL保留部分的缓冲区。这些缓冲区可以提高MySQL的速度。缓冲区的大小都是在MySQL的配置文件中进行设置的。

下面对几个重要的参数进行详细介绍:

key_buffer_size:表示索引缓存的大小。这个值越大,使用索引进行查询的速度就越快

table_cache:表示同时打开的表的个数。这个值越大,能同时打开的表的个数就越多。这个值不是越大越好,因为同时打开的表过多会影响操作系统的性能。

query_cache_size:表示查询缓冲区的大小。使用查询缓存区可以提高查询的速度。这个方式只使用与修改操作少且经常执行相同的查询操作的情况;默认值是0.

Query_cache_type:表示查询缓存区的开启状态。0表示关闭,1表示开启。

Max_connections:表示数据库的最大连接数。这个连接数不是越大越好,因为连接会浪费内存的资源。

Sort_buffer_size:排序缓存区的大小,这个值越大,排序就越快。

Innodb_buffer_pool_size:表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。这个值太大了就会影响操作系统的性能。

原文:https://www.zybuluo.com/phper/note/85518

相关文章

  • mysql的各种优化

    没索引与有索引的区别 优点: 当表中有大量记录时,若要对表进行查询,如果没用建立索引,搜索信息方式是全表搜索,是将...

  • Mysql 优化

    mysql 优化(简单的测试,仅供参考) 查看mysql配置 查看MySQL服务器运行的各种状态值 查看有多少慢查...

  • MySQL优化的一般步骤

    优化MySQL语句的一般步骤 通过show status命令了解各种sql的执行频率 mysql show sta...

  • MySQL相关文章索引(2)

    1.MySQL性能优化 对MySQL语句的性能分析与优化 Mysql 监控 Innodb 阻塞状况 MySQL索引...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • MYSQL分页limit速度太慢优化方法

    MySQL 百万级分页优化(Mysql千万级快速分页)(转) MYSQL分页limit速度太慢优化方法 MYSQL...

  • MySQL~「show status」

    要查看MySQL运行状态,要优化MySQL运行效率都少不了要运行show status查看各种状态。 状态名作用域...

  • MySQL性能调优

    MYSQL查询语句优化 mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬...

  • MySQL的SQL优化

    MySQL的SQL优化 通过 show status 命令了解各种 SQL 的执行频率 Com_select:执行...

  • 关于Mysql Select Count(*或者主键) 查询速度

    通过各种Google 查到一篇文章 故障分析 | MySQL 优化案例 – select count(*)[htt...

网友评论

      本文标题:mysql的各种优化

      本文链接:https://www.haomeiwen.com/subject/yqzbsttx.html