十六、mysql 分区之 简单sql优化2

1.索引的分类
    B-Tree 基本支持
    HASH 只有memory支持
    R-Tree myisam支持
    Full-text myisam支持(全文索引)

2.Memory引擎下只有“=”条件才会使用索引

===============================  导入数据的优化  ========================

3.如何提高myisam的导入效率
  alter table emp disable keys;关闭索引
  load data infile ‘aa.sql‘ into table emp;导入数据到emp
  alter table emp enable keys;开启索引

4.如何提高innodb的导入效率
  导入的数据按照主键的顺序排列即可

5.导入数据前关闭唯一性检查
  set unique_checks = 0 ;
  load data infile ....
  set unique_checks = 1 ; 开启检查

===============================  Insert 的优化  ========================

1.使用多值插入 insert into emp values (1,2,3),(1,2,3),.....

===============================  分页 的优化  ==========================

1.使用inner join内联
2.应用程序端做处理,大概思路就是记录上一页的最后一条记录的id是多少,下一页就以这个id为起始值
  但这个必须保证id为唯一性

十六、mysql 分区之 简单sql优化2

时间: 2024-10-08 22:12:12

十六、mysql 分区之 简单sql优化2的相关文章

十六、mysql 分区之 简单sql优化1

1.使用 show session status like '%Com_%'; 可以查看当前连接的各个sql的执行频率 show global status like '%Com_%'; 可以查看从上次mysql服务器启动到目前为止sql的执行频率 2.explain select * from tmp; mysql> explain select * from zi_emp where tid = 1000\G *************************** 1. row ******

MySQL索引原理及SQL优化

原文:MySQL索引原理及SQL优化 目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type table type possible_keys key key_len ref rows Extra 优化数据库结构 优化数据大小 优化数据类型 索引(Index) MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.索引的建立对

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

Mysql的一条SQL优化(一)

开发反应做压测时并发上不去,有条SQL执行非常慢,于是explain下: MariaDB [db_vip]> MariaDB [db_vip]> explain select            ext_id, mid, msource_id, msource_type, referee, mobile, tel, mpassword,status         from m_db_vip     where  (msource_id='xx1391434680574433' and ms

【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子查询 例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name='hechunyang'); 子查询在MySQL5.5版本里,内部执行计划器是这样执行的:先查外表再匹配内表,而不是先查内表t2,当外表的数据很大时,查询速度会非常慢.在Mari

Mysql的一条SQL优化(二)

开发过来查看我做的调整,发现我创建的索引其实在另一个测试库上(测试库2)已经创建好了,但为什么测试库2上还是慢呢? 于是上测试库2查看,发现之前我创建的2个列的索引确实已经有了,并且还多了一个索引i_msource_type: Indexes Columns Index_Type PRIMARY ext_id Unique i_mobile mobile i_msource_type msource_type i_msource_id msource_id 而msource_type列的可选择性

马哥学习笔记十六——MySQL进阶之事务和隔离级别

连接管理器:  接受请求  创建线程  认证用户  建立安全连接 并发控制: mbox:MDA C/S: 100   10分钟: 多版本并发控制: MVCC 锁: 读锁:共享锁 写锁:独占锁 LOCK TABLES tb_name {READ|WRITE}; UNLOCK TABLES 锁粒度:从大到小,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成: 表锁: 页锁:(block) 行锁: 事务:  RDBMS: ACID (原子性,一致性,隔离性,持久性) MyISAM:  不支持事务

聊聊高并发(十六)实现一个简单的可重入锁

可重入锁指的是如果一个线程已经获得了一个锁,那么它可以多次进入这个锁,当然前提是线程需要先获得这个锁. 可重入锁是最常使用的锁,Java的内置锁就是可重入锁,使用synchronized关键字可以启用内置锁机制,比如说一个类有两个synchronized方法A和B,在A方法中调用了B方法,如果锁不是可重入的,那么访问B时需要再次竞争锁,这样会带来死锁. public synchronized void A(){ B(); } public synchronized void B(){ } 可重入

十六.MySQL存储过程

1.创建一个没有参数的存储过程 CREATE PROCEDURE sp1() SELECT VERSION(); 调用存储过程:CALL sp1(); 2.带有IN参数的存储过程 CREATE PROCEDURE removeUserByID(IN p_id INT UNSIGNED) BEGIN DELETE FROM users3 WHERE id=p_id; END // 3.创建带有IN和OUT类型的存储过程 原文地址:https://www.cnblogs.com/chenshaopi