高性能Mysql-查询性能优化学习笔记

  • 2019-05-16 07:11:11
  • 380
  • 0


使用SELECT * 语句查询时,最好只返回需要的的数据,而不是返回全部列。取出全部列,会让优化器无法完成索引覆盖扫描这类优化,还会给服务器带来额外的I/O,内存和CPU的消耗。如果应用服务器和数据库不在同一台主机上,网络开销就显的更明显了。


衡量查询开销的三个指标:

响应时间,扫描的行数,返回的行数。


存储过程 相比  客户端程序执行要快很多,因为它无需网络通信开销,解析开销,优化器开销。


存储过程代码:


DROP PROCEDURE IF EXISTS insert_many_rows;
delimiter //
CREATE PROCEDURE insert_many_rows (IN loops INT)
BEGIN
      DECLARE v1 INT;
      SET v1=loops;
      WHILE v1 > 0 Do
            INSERT INTO test_table values(NULL,0,'sdssdsdsds','dfdsfdslfklds');
            SET v1 = v1 -1;
      END WHILE;
END;
//
delimiter





回复
举报
全部回复(0)

参与讨论