Home Database Mysql Tutorial 小弟我碰到的MySQL性能优化点

小弟我碰到的MySQL性能优化点

Jun 07, 2016 pm 04:25 PM
mysql optimization performance

我碰到的MySQL性能优化点 1.在foreach中调用接口(里面执行了查询一条的sql语句) 改进:先将要查询的字段收集到数组里面,然后用in调用一次接口: /** * @brief 式化数据 (收集数组中的字段,最后用in查询) * @param params 原始数组 * @param fields 所需

我碰到的MySQL性能优化点

1.在foreach中调用接口(里面执行了查询一条的sql语句) 改进:先将要查询的字段收集到数组里面,然后用in调用一次接口:
 /**
     * @brief 格式化数据(收集数组中的字段,最后用in查询)
     * @param params 原始数组
     * @param fields 所需字段
     * @return ret 返回数组
     * @desc 从数组中获取需要字段,组成新的数组返回,主要用于改变数据库返回数据的格式
     */
    public static function getNeedFromListArray($params , $fields) {
        $ret = array();
        foreach($params as $key => $value) {
            $ret[] = $value[$fields];
        }
        return $ret;
    }


2.小集合驱动大集合:先使用子sql语句查询出小的集合,然后再查大的
select s.follow_user_id,p.calledtotallen,p.calling_time
                from       
                (select p.calledtotallen,p.calling_time
                    from phone_call_log_current p '. $where2 .') p
                left join car_sale s on p.sale_id = s.id '.$where1.' 
                order by p.calling_time desc 
                limit 0, 10'
3.查询一条数据的时候使用limit 1。(这个就不用例子了)
4.给where,join中的字段增加索引。(平时都是DBA加)
5.用什么数据就查询什么数据
不要图省事用select *
6.建立数据库之前,不要使用NULL(在IOS/Android中出现NULL可能导致崩溃)导致Android/IOS崩溃的null----PHP和Android/IOS数据交互
崩溃了两次之后,为了兼容旧数据,还用了个递归函数,专门来处理这些NULL
7.使用数据为int类型时,不要使用单引号,会降低效率
where id = '123';
加了单引号,成了string,效率更低
8.建立好日志和异常处理非常重要,可以迅速知道,在哪里出现了瓶颈。(尤其是慢查询日志)
这个是所有的模块都要处理的东西。
9.不要使用like字段,如果必须模糊搜索,使用sphinx等,效率和性能会大大提升
like会阻塞掉其他的sql查询


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to optimize MySQL query performance in PHP? How to optimize MySQL query performance in PHP? Jun 03, 2024 pm 08:11 PM

How to optimize MySQL query performance in PHP?

How to use MySQL backup and restore in PHP? How to use MySQL backup and restore in PHP? Jun 03, 2024 pm 12:19 PM

How to use MySQL backup and restore in PHP?

How to insert data into a MySQL table using PHP? How to insert data into a MySQL table using PHP? Jun 02, 2024 pm 02:26 PM

How to insert data into a MySQL table using PHP?

How to fix mysql_native_password not loaded errors on MySQL 8.4 How to fix mysql_native_password not loaded errors on MySQL 8.4 Dec 09, 2024 am 11:42 AM

How to fix mysql_native_password not loaded errors on MySQL 8.4

How to use MySQL stored procedures in PHP? How to use MySQL stored procedures in PHP? Jun 02, 2024 pm 02:13 PM

How to use MySQL stored procedures in PHP?

Performance comparison of different Java frameworks Performance comparison of different Java frameworks Jun 05, 2024 pm 07:14 PM

Performance comparison of different Java frameworks

C++ program optimization: time complexity reduction techniques C++ program optimization: time complexity reduction techniques Jun 01, 2024 am 11:19 AM

C++ program optimization: time complexity reduction techniques

How to create a MySQL table using PHP? How to create a MySQL table using PHP? Jun 04, 2024 pm 01:57 PM

How to create a MySQL table using PHP?

See all articles