首页 > 编程知识 正文

mysql数据库安装步骤,MySQL查询优化

时间:2023-05-04 03:33:41 阅读:50522 作者:2399

文章目录1. SQL语句优化2 .索引优化3 .表结构优化4 .系统参数配置优化5 .硬件优化6 .引擎优化7 .读写分离8 .缓存9 .库分类表

1 .优化SQL语句尽量避免使用子查询,使用连接连接而不是子查询,使用联合UNION而不是手动创建的临时表,使用IN而不是函数索引,使用IN而不是OR,以及如果不希望使用select *来禁止不必要的order by排序,则可以通过打开缓慢的查询日志来找到不进行列运算的SQL语句。 对列进行操作时,会发生数据库教程函数、计算公式等表扫描。 对于查询,请尽量轻松地将操作移动到等号右侧的sql语句上。 sql只能由一个cpu进行运算。 大句子分解小句子,缩短锁定时间。 较大的sql可以阻止整个库,并尽量避免在WHERE子句中使用。=或操作员。 否则,引擎将停止使用索引并执行所有表扫描。 2 .索引优化应尽量避免确定WHERE子句中字段的空值。 否则,引擎不适合停止使用索引并在所有表扫描值分布非常少的字段中创建索引。 例如,在只有两三个值的字段字符字段(如“性别”)中只创建前缀的索引字符字段最好不要使用外键。 通过程序保证约束尽量不使用UNIQUE,通过程序保证约束使用多列索引时,创意顺序和检索条件一致,同时删除不需要的单列索引3 .表结构优化`数据库表结构为三大范式和BCNF 在固定长度、MD5散列码和短长度字段中使用char类型以提高效率; 使用对边长、字段可能变长的varchar类型可以节约内存。 适当进行水平分割和垂直分割,例如表列数过多时,将一部分列移动到另一个表中。 4 .优化系统参数配置wait_timeout :数据库连接空闲时间。 空闲连接占用内存资源。 可以将默认的8小时减少到30分钟max_user_connection:最大连接数。 默认值为0,没有上限。 适当的上限thread_concurrency :建议设置并发线程数,并禁止对外部的访问,skip_name_resolve是CPU核心数的两倍;但是,所有远程主机在IP上均为10,key 增加会提高索引速度,对MyISAM表的性能影响最大。 在存储器4G左右的情况下,可以是256M或384M,通过查询show status like'key_read% ',可以获取key_reads/show status like ' innodb _ buffer ' buffer _ pool _ read % '确保key_read_requests不超过0.1% 保修(innodb _ buffer _ pool _ read _ requestsinnodb _ buffer _ pool _ reads )/innodb _ buffer _ pool _ read _ read ) innodb _ additional _ mem _ pool _ size:innodb存储引擎用于存储数据词典信息和一些内部数据结构的内存量较大,数据库对象非常多时此参数如果太小,MySQL将在数据库错误日志中记录Warning信息。 在这种情况下,必须调整此参数的大小。 innodb_log_buffer_size:InnoDB存储引擎的事务日志使用的缓冲区。 一般不建议超过32MB 5。 硬件优化可以根据MySQL是CPU负载还是I/O负载的不同,通过提高CPU和内存、使用SSD等方法显著提高MySQL的性能。MySQL是一种关系数据库,适合垂直升级6。 根据发动机优化情况选择合适的发动机7。 构建读写隔离体系结构master只负责写入,slave只负责读取8 .在缓存系统内部协调相关缓存参数为前端网页缓存的mysql预缓存服务器(rediive

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。