亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

16性能優化

發布時間:2020-08-12 15:04:38 來源:ITPUB博客 閱讀:109 作者:wg0411 欄目:建站服務器


16性能優化

===============

索引

合理使用索引可以提高數據訪問速度
索引是否被合理使用可以使用show status或者mysqladmin擴展命來查看

mysql> show status like 'handler_read%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| Handler_read_first    | 0     |
| Handler_read_key      | 0     |
| Handler_read_next     | 0     |
| Handler_read_prev     | 0     |
| Handler_read_rnd      | 0     |
| Handler_read_rnd_next | 456   |
+-----------------------+-------+
6 rows in set (0.00 sec)

其中:
 Handler_read_key這個值表示了一個行被索引讀的次數,值高表示索引使用率較高
 Handler_read_rnd_next這個值表示按照順序讀下一行的申請次數,值高表示查詢效率偏低,需要創建合力的索引

表中索引被創建后,分析表可以減少碎片,提高訪問效率
mysql> analyze table a,b;
+-------+---------+----------+----------+
| Table | Op      | Msg_type | Msg_text |
+-------+---------+----------+----------+
| an.a  | analyze | status   | OK       |
| an.b  | analyze | status   | OK       |
+-------+---------+----------+----------+
2 rows in set (0.03 sec)

--------------

查詢高速緩存

mysql> show variables like '%query_cache%';
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| have_query_cache             | YES     |
| query_cache_limit            | 1048576 |
| query_cache_min_res_unit     | 4096    |
| query_cache_size             | 9437184 |
| query_cache_type             | ON      |
| query_cache_wlock_invalidate | OFF     |
+------------------------------+---------+
6 rows in set (0.00 sec)

have_query_cache  是否設置了查詢高速緩存
query_cache_size  表示分配的查詢高速緩存的大小,為0則表示關閉了查詢告訴緩存
query_cache_type  值范圍為0到2,0或者off表示查詢告訴緩存關閉,1表示查詢告訴緩存已經打開,但使用sql_no_cache選項的select語句除外,2或者demand根據需要按照運行帶sql_cache選項的select語句提供查詢告訴緩存

查詢中使用或者不是用查詢告訴緩存可以在查詢中是用關鍵字sql_cache,sql_no_cache來控制

mysql> select sql_cache * from a;
+----+------+
| id | name |
+----+------+
|  1 | ab   |
|  2 | abc  |
|  3 | abcd |
|  4 | ann  |
+----+------+
4 rows in set (0.00 sec)

mysql> select sql_no_cache * from a;
+----+------+
| id | name |
+----+------+
|  1 | ab   |
|  2 | abc  |
|  3 | abcd |
|  4 | ann  |
+----+------+
4 rows in set (0.00 sec)

----------------

分析查詢

類似于oracle的查看執行計劃

mysql> explain select * from a;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | a     | ALL  | NULL          | NULL | NULL    | NULL |    4 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)


mysql> explain select * from a where id=1 union select * from a;
+----+--------------+------------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type  | table      | type  | possible_keys | key     | key_len | ref   | rows | Extra |
+----+--------------+------------+-------+---------------+---------+---------+-------+------+-------+
|  1 | PRIMARY      | a          | const | PRIMARY       | PRIMARY | 4       | const |    1 |       |
|  2 | UNION        | a          | ALL   | NULL          | NULL    | NULL    | NULL  |    4 |       |
|NULL | UNION RESULT | <union1,2> | ALL   | NULL          | NULL    | NULL    | NULL  | NULL |       |
+----+--------------+------------+-------+---------------+---------+---------+-------+------+-------+
3 rows in set (0.02 sec)

各個列的含義:
id   查詢中色了傳統的位置
table  查詢的表名
select_type 查詢類型,包括是否有子查詢,union,外部查詢,外部查詢中的子查詢等
type  連接的執行情況,const:連接的最佳種類,all:掃描所有數據后才得到結果
possible_keys  提高查詢速度可以使用的索引
key   實際使用的鍵,包括在key_len列中顯示的鍵長度
rows  查詢到數據的長度
extra  其他信息,如mysql如何處理查詢結果等信息

---------------

優化多表查詢

mysql中連接效果比子查詢好
避免使用嵌套
使用中間變量減少查詢層次

----------------

使用臨時表

使用臨時表存放中間信息可以提高性能

-----------------

優化表設計

合理的字段選擇,字段長度選擇
optimize table

------------------

調整服務器設置

mysql優化調整首先想到的是調整key_buffer_size和table_cache

key_buffer_size  mysql索引緩沖可以使用的內存量,一般建議使用武力內存的25%到30%
table_cache    表高速緩存使用的內存量,與其有關的參數還有max_connections
         mysql建議table_cache=max_connections*n,n為標準連接中表的數量

mysql> select @@table_cache;
+---------------+
| @@table_cache |
+---------------+
|           700 |
+---------------+
1 row in set (0.00 sec)

mysql> show variables like '%table_cache%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| table_cache   | 700   |
+---------------+-------+
1 row in set (0.00 sec)

mysql> set global table_cache=1000;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@table_cache;
+---------------+
| @@table_cache |
+---------------+
|          1000 |
+---------------+
1 row in set (0.00 sec)

這樣設置重啟數據庫后設置將會恢復


其他的優化方法:
 增加sort_buffer可以提高order by和group by語句的查詢速度
 增加read_rnd_buffer_size變量可以提高分類行的速度
 增加read_buffer_size可以提高讀緩存進而提高select效率
 增加binlog_cache_size增加二進制日志緩存區,可以提高日志的處理速度
 增加bulk_insert_buffer_size可以提高批量插入速度,但只能在myisam表中生效
 增加thread_cache_size可以控制每個進程分配的內存量,如果連接很多的話可以做到更好的控制

--------------

基準技術
 mysql benchmark suite
 要求能夠運行perl,包括perl dbi套件和mysql數據庫驅動程序(dbd)
 perl -e "use DBI"
  

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和田市| 康马县| 辽源市| 徐闻县| 乌苏市| 益阳市| 镇安县| 永靖县| 吉首市| 新疆| 崇仁县| 中江县| 铁力市| 凤山县| 确山县| 湟中县| 冀州市| 睢宁县| 新兴县| 长子县| 缙云县| 信丰县| 金山区| 鹿邑县| 当阳市| 布拖县| 奉节县| 拜泉县| 保康县| 扶余县| 通江县| 桑植县| 无锡市| 前郭尔| 柯坪县| 竹山县| 施甸县| 井研县| 二手房| 江口县| 武强县|