Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 最近中文字幕高清字幕在线视频,日韩久久综合,日韩精品123

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          MySQL自動(dòng)化生成HTML頁面(導(dǎo)出數(shù)據(jù))極限SQL編程

          日客戶要求表內(nèi)的數(shù)據(jù)依據(jù)某種分組生成HTML頁面進(jìn)行展示,一般處理這種需求直接上編程工具就好了,從數(shù)據(jù)庫里讀取數(shù)據(jù),根據(jù)規(guī)則生成字符串,最后將字符串寫出到文件。由于需求比較急,作為數(shù)據(jù)庫編程系列文章,如果能用SQL實(shí)現(xiàn)首選還是SQL,這樣處理既直接又快速,不過針對(duì)SQL要真的有耐心和信心寫完,調(diào)試更是崩潰。由于要寫出文件到硬盤,最后還是選擇MySQL作為數(shù)據(jù)庫工具,Navicat作為開發(fā)工具。

          有兩張表計(jì)劃表、市縣表,二者依靠市縣編碼(sxbm)進(jìn)行等值連接,計(jì)劃表內(nèi)含有各個(gè)學(xué)校投放在各個(gè)市縣的專業(yè)代號(hào)(zydh),專業(yè)名稱(zymc)、招生備注(bz)、學(xué)制(xz)、要求的學(xué)歷(xl)、計(jì)劃數(shù)(jh)等字段組成的計(jì)劃信息,院校編碼(yxbm)為學(xué)校的兩位數(shù)編碼,院校代號(hào)(yxdh)為院校編碼(yxbm)+市縣編碼(sxbm)組成的四位數(shù)編碼,院校代號(hào)其實(shí)可以區(qū)分出學(xué)校在哪個(gè)市縣的投檔的專業(yè)計(jì)劃。要求以學(xué)校為單位創(chuàng)建HTML頁面,頁面首先要以市縣作為表格分割,然后根據(jù)專業(yè)代號(hào)排序。具體實(shí)現(xiàn)過程如下:

          創(chuàng)建計(jì)劃表:

          CREATE TABLE `zzjh2019v` (
          `YXDH` varchar(9) COMMENT '學(xué)校代號(hào)',
          `YXMC` varchar(54) COMMENT '學(xué)校名稱',
          `ZYDH` varchar(2) COMMENT '專業(yè)代號(hào)',
          `ZYMC` varchar(28) COMMENT '專業(yè)名稱',
          `XZ` varchar(3) COMMENT '學(xué)制',
          `XL` varchar(4) COMMENT '學(xué)歷',
          `JH` varchar(6) COMMENT '招生計(jì)劃數(shù)',
          `BZ` varchar(200) COMMENT '備注',
          `yxbm` char(2) COMMENT '學(xué)校編碼',
          `sxbm` char(2) COMMENT '市縣編碼'
          ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
          

          創(chuàng)建市縣編碼表:

          CREATE TABLE `sx` (
          `sxbm` char(2) COMMENT '市縣編碼',
          `sxmc` varchar(20) COMMENT '市縣名稱'
          ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
          

          糾結(jié)了很久這個(gè)東西怎么寫,最后采取游標(biāo)、拼接字符串、字符串聚合,動(dòng)態(tài)SQL,寫文件等一些列操作完成需求,創(chuàng)建的存儲(chǔ)過程如下:

          CREATE DEFINER=`root`@`localhost` PROCEDURE `splitjh`()
          BEGIN
          declare done INT DEFAULT 0;
          declare pyxbm char(2);
          declare psxmc varchar(10);
          declare pyxmc varchar(50);
          declare pjhall int;
          declare pjhrows TEXT;
          declare yxjh cursor
          for
          select yxbm,yxmc,sum(jh) jhall from zzjh2019v a,sx b where a.sxbm=b.sxbm group by yxbm,yxmc order by yxbm;
          declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
          open yxjh;
          fetch yxjh into pyxbm,pyxmc,pjhall;
          while done !=1 do
          select group_concat(jhrow separator '') into pjhrows from
          (select concat('<tr class="subtitle"><td>',yxdh,'</td><td>',yxmc,'在 <span><font color="red">',b.sxmc,'</font></span> 招生計(jì)劃如下</td><td>',sum(jh),'</td><td></td><td></td></tr>',group_concat('<tr class="jhrow"><td>',zydh,'</td><td>',zymc,'(',bz,')</td><td>',jh,'</td><td>',xz,'</td><td>',xl,'</td></tr>' order by zydh separator '')) jhrow
          from zzjh2019v a,sx b where yxbm=pyxbm and a.sxbm=b.sxbm group by yxdh order by yxdh,zydh) jhs;
          set @pfilename = concat('''d:/32/1/1/jh11',pyxbm,'.html''');
          set @sql =concat('select concat(''<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" type="text/css" href="zsjh.css" ><title>3+2計(jì)劃</title></head><body><h3></h3><table><tr class="subtitle"><th>代號(hào)</th><th>專業(yè)及名稱備注</th><th>人數(shù)</th><th>學(xué)制</th><th>學(xué)歷</th></tr>'',''',pjhrows,''',''</body></html>'') from dual into outfile ',@pfilename);
          prepare execsql from @sql;
          execute execsql;
          DEALLOCATE PREPARE execsql;
          fetch yxjh into pyxbm,pyxmc,pjhall;
          end while;
          close yxjh;
          END;
          

          首先看效果,執(zhí)行過程

          call splitjh();
          

          在磁盤形成的HTML文件效果如下圖(數(shù)據(jù)有一定的敏感性,進(jìn)行了遮擋處理):

          文件展示頁面

          生成的文件列表如下圖:

          生成的文件列表

          這里一共有87所學(xué)校,所以生成了87的文件,添加CSS樣式文件,讓表格呈現(xiàn)如前圖所示。

          技術(shù)點(diǎn)

          1)MySQL的游標(biāo),以及循環(huán)讀取游標(biāo)的方法,涉及的語句如下:

          declare yxjh cursor
          for
          select yxbm,yxmc,sum(jh) jhall from zzjh2019v a,sx b where a.sxbm=b.sxbm group by yxbm,yxmc order by yxbm;#游標(biāo)定義
          declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;#游標(biāo)循環(huán)條件,注意此句一定要定義在游標(biāo)之后,才起作用
          open yxjh;#打開游標(biāo)
          fetch yxjh into pyxbm,pyxmc,pjhall;#將游標(biāo)行內(nèi)容賦值給變量。
          

          2)執(zhí)行動(dòng)態(tài)SQL,由于MySQL into outfile 后接的文件名不能為變量,所以必須使用動(dòng)態(tài)SQL的方法,涉及的語句如下:

          prepare execsql from @sql;#從一個(gè)變量準(zhǔn)備一個(gè)動(dòng)態(tài)sql,注意execsql不用提前定義
          execute execsql;#執(zhí)行準(zhǔn)備好的語句
          DEALLOCATE PREPARE execsql;#銷毀語句
          

          綜上就是使用MySQL數(shù)據(jù)庫,并借用MySQL寫文件的方式將數(shù)據(jù)從數(shù)據(jù)庫內(nèi)按照需求導(dǎo)出文件,為何不用navicat導(dǎo)出呢?因?yàn)闊o法達(dá)到要求,又是聚合、又是格式,所以只能自己編寫過程通過SQL語句拼接字符串的方式來實(shí)現(xiàn)。沒有太多的技術(shù)難度,主要是想法和調(diào)試難度。后續(xù)在此基礎(chǔ)上又開發(fā)了以市縣為單位創(chuàng)建HTML文件,各招生學(xué)校作為分割的過程。本案例是實(shí)際需求催生出來的做法,在遇到這樣的需求前你是先想到SQL還是先想到開發(fā)工具呢?從實(shí)際效果看使用SQL這種方式更加靈活。這樣的SQL實(shí)現(xiàn)的字符串拼接是不是有點(diǎn)極限呢?

          文:https://www.enmotech.com/web/detail/1/838/1.html (復(fù)制鏈接,打開瀏覽器即可查看)

          北冥有 Data,其名為鯤,鯤之大,一個(gè) MySQL 放不下。千萬量級(jí)的數(shù)據(jù),用 MySQL 要怎么存?

          初學(xué)者在看到這個(gè)問題的時(shí)候,可能首先想到的是 MySQL 一張表到底能存放多少條數(shù)據(jù)?

          根據(jù) MySQL 官方文檔的介紹,MySQL 理論上限是 (232)2 條數(shù)據(jù),然而實(shí)際操作中,往往還受限于下面兩條因素:

          1. myisamdatapointersize,MySQL 的 myisamdatapointersize 一般默認(rèn)是 6,即 48 位,那么對(duì)應(yīng)的行數(shù)就是 248-1。

          2. 表的存儲(chǔ)大小 256TB

          那有人會(huì)說,只要我的數(shù)據(jù)大小不超過上限,數(shù)據(jù)行數(shù)也不超過上限,是不是就沒有問題了?其實(shí)不盡然。

          在實(shí)際項(xiàng)目中,一般沒有哪個(gè)項(xiàng)目真的觸發(fā)到 MySQL 數(shù)據(jù)的上限了,因?yàn)楫?dāng)數(shù)據(jù)量變大了之后,查詢速度會(huì)慢的嚇人,而一般這個(gè)時(shí)候,你的數(shù)據(jù)量離 MySQL 的理論上限還遠(yuǎn)著呢!

          傳統(tǒng)的企業(yè)應(yīng)用一般數(shù)據(jù)量都不大,數(shù)據(jù)也都比較容易處理,但是在互聯(lián)網(wǎng)項(xiàng)目中,上千萬、上億的數(shù)據(jù)量并不鮮見。在這種時(shí)候,還要保證數(shù)據(jù)庫的操作效率,我們就不得不考慮數(shù)據(jù)庫的分庫分表了。

          那么接下來就和大家簡單聊一聊數(shù)據(jù)庫分庫分表的問題。

          數(shù)據(jù)庫切分


          看這個(gè)名字就知道,就是把一個(gè)數(shù)據(jù)庫切分成 N 多個(gè)數(shù)據(jù)庫,然后存放在不同的數(shù)據(jù)庫實(shí)例上面,這樣做有兩個(gè)好處:

          1. 降低單臺(tái)數(shù)據(jù)庫實(shí)例的負(fù)載

          2. 可以方便的實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的擴(kuò)容

          一般來說,數(shù)據(jù)庫的切分有兩種不同的切分規(guī)則:

          1. 水平切分

          2. 垂直切分

          接下來我們就對(duì)這兩種不同的切分規(guī)則分別進(jìn)行介紹。

          水平切分


          先來一張簡單的示意圖,大家感受一下什么是水平切分:



          假設(shè)我的 DB 中有 table-1、table-2 以及 table-3 三張表,水平切分就是拿著我的絕世好劍,對(duì)準(zhǔn)黑色的線條,砍一劍或者砍 N 劍!

          砍完之后,將砍掉的部分放到另外一個(gè)數(shù)據(jù)庫實(shí)例中,變成下面這樣:




          這樣,原本放在一個(gè) DB 中的 table 現(xiàn)在放在兩個(gè) DB 中了,觀察之后我們發(fā)現(xiàn):

          1. 兩個(gè) DB 中表的個(gè)數(shù)都是完整的,就是原來 DB 中有幾張表,現(xiàn)在還是幾張。

          2. 每張表中的數(shù)據(jù)是不完整的,數(shù)據(jù)被拆分到了不同的 DB 中去了。

          這就是數(shù)據(jù)庫的水平切分,也可以理解為按照數(shù)據(jù)行進(jìn)行切分,即按照表中某個(gè)字段的某種規(guī)則來將表數(shù)據(jù)分散到多個(gè)庫之中,每個(gè)表中包含一部分?jǐn)?shù)據(jù)。

          這里的某種規(guī)則都包含哪些規(guī)則呢?這就涉及到數(shù)據(jù)庫的分片規(guī)則問題了,這個(gè)松哥在后面的文章中也會(huì)和大家一一展開詳述。這里先簡單說幾個(gè)常見的分片規(guī)則:

          1. 按照日期劃分:不容日期的數(shù)據(jù)存放到不同的數(shù)據(jù)庫中。

          2. 對(duì) ID 取模:對(duì)表中的 ID 字段進(jìn)行取模運(yùn)算,根據(jù)取模結(jié)果將數(shù)據(jù)保存到不同的實(shí)例中。

          3. 使用一致性哈希算法進(jìn)行切分。

          詳細(xì)的用法,將在后面的文章中和大家仔細(xì)說。

          垂直切分


          先來一張簡單的示意圖,大家感受一下垂直切分:



          所謂的垂直切分就是拿著我的屠龍刀,對(duì)準(zhǔn)了黑色的線條砍??惩曛?,將不同的表放到不同的數(shù)據(jù)庫實(shí)例中去,變成下面這個(gè)樣子:





          這個(gè)時(shí)候我們發(fā)現(xiàn)如下幾個(gè)特點(diǎn):

          1. 每一個(gè)數(shù)據(jù)庫實(shí)例中的表的數(shù)量都是不完整的。

          2. 每一個(gè)數(shù)據(jù)庫實(shí)例中表的數(shù)據(jù)是完整的。

          這就是垂直切分。一般來說,垂直切分我們可以按照業(yè)務(wù)來劃分,不同業(yè)務(wù)的表放到不同的數(shù)據(jù)庫實(shí)例中。

          老實(shí)說,在實(shí)際項(xiàng)目中,數(shù)據(jù)庫垂直切分并不是一件容易的事,因?yàn)楸碇g往往存在著復(fù)雜的跨庫 JOIN 問題,那么這個(gè)時(shí)候如何取舍,就要考驗(yàn)架構(gòu)師的水平了!

          優(yōu)缺點(diǎn)分析


          通過上面的介紹,相信大家對(duì)于水平切分和垂直切分已經(jīng)有所了解,優(yōu)缺點(diǎn)其實(shí)也很明顯了,松哥再來和大家總結(jié)一下。

          水平切分


          · 優(yōu)點(diǎn)

          水平切分最大的優(yōu)勢在于數(shù)據(jù)庫的擴(kuò)展性好,提前選好切分規(guī)則,數(shù)據(jù)庫后期可以非常方便的進(jìn)行擴(kuò)容。

          有效提高了數(shù)據(jù)庫穩(wěn)定性和系統(tǒng)的負(fù)載能力。拆分規(guī)則抽象好, join 操作基本可以數(shù)據(jù)庫做。

          · 缺點(diǎn)

          水平切分后,分片事務(wù)一致性不容易解決。

          拆分規(guī)則不易抽象,對(duì)架構(gòu)師水平要求很高。

          跨庫 join 性能較差。

          垂直切分


          · 優(yōu)點(diǎn)

          一般按照業(yè)務(wù)拆分,拆分后業(yè)務(wù)清晰,可以結(jié)合微服務(wù)一起食用。

          系統(tǒng)之間整合或擴(kuò)展相對(duì)要容易很多。

          數(shù)據(jù)維護(hù)相對(duì)簡單。

          · 缺點(diǎn)

          最大的問題在于存在單庫性能瓶頸,數(shù)據(jù)表擴(kuò)展不易。

          跨庫 join 不易。

          事務(wù)處理復(fù)雜。

          結(jié)語


          雖然 MySQL 中數(shù)據(jù)存儲(chǔ)的理論上限比較高,但是在實(shí)際開發(fā)中我們不會(huì)等到數(shù)據(jù)存不下的時(shí)候才去考慮分庫分表問題,因?yàn)樵谀侵?,你就?huì)明顯的感覺到數(shù)據(jù)庫的各項(xiàng)性能在下降,就要開始考慮分庫分表了。

          想了解更多數(shù)據(jù)庫、云技術(shù)的內(nèi)容嗎?

          快來關(guān)注“數(shù)據(jù)和云”公眾號(hào)、“云和恩墨”官方網(wǎng)站,我們期待大家一同學(xué)習(xí)和進(jìn)步!

          數(shù)據(jù)和云小程序“DBASK”在線問答隨時(shí)解惑,歡迎了解和關(guān)注。

          client]

          port = 3306

          [mysqld]

          #默認(rèn)存儲(chǔ)引擎INNODB

          default-storage-engine=INNODB

          #GROUP_CONCAT長度

          group_concat_max_len =99999

          #端口號(hào)

          port = 3306

          #套接字文件

          #這里要注意:有時(shí)候重啟mysql會(huì)提示/tmp/mysql.sock不存在,此時(shí)通常會(huì)由于兩種情況導(dǎo)致,解決方法可以參考我之前記錄的文章,親測有效:https://www.cnblogs.com/zhangweizhong/p/12179452.html

          socket = /usr/local/mysql/mysql.sock

          #pid寫入文件位置

          pid-file = /usr/local/mysql/mysqld.pid

          #數(shù)據(jù)庫文件位置

          datadir = /home/data/mysql/data

          #控制文件打開的個(gè)數(shù);

          open_files_limit = 10240

          #當(dāng)外部鎖定(external-locking)起作用時(shí),每個(gè)進(jìn)程若要訪問數(shù)據(jù)表,

          #則必須等待之前的進(jìn)程完成操作并解除鎖定。由于服務(wù)器訪問數(shù)據(jù)表時(shí)經(jīng)常需要等待解鎖,

          skip-external-locking


          #跳過DNS反向解析

          skip-name-resolve

          #關(guān)閉TIMESTAMP類型默認(rèn)值

          explicit_defaults_for_timestamp

          #不受client字符集影響,保證sever端字符集

          skip-character-set-client-handshake


          #初始連接字符集UTF8

          init-connect='SET NAMES utf8'


          #默認(rèn)數(shù)據(jù)庫字符集

          character-set-server=utf8

          #查詢緩存0,1,2,分別代表了off、on、demand

          query_cache_type = 1

          #單位秒,握手時(shí)間超過connect_timeout,連接請(qǐng)求將會(huì)被拒絕

          connect_timeout = 20


          #設(shè)置在多少秒沒收到主庫傳來的Binary Logs events之后,從庫認(rèn)為網(wǎng)絡(luò)超時(shí),Slave IO線程會(huì)重新連接主庫。

          #該參數(shù)的默認(rèn)值是3600s

          slave_net_timeout = 30

          #這個(gè)參數(shù)用來配置從服務(wù)器的更新是否寫入二進(jìn)制日志,這個(gè)選項(xiàng)默認(rèn)是不打開的,

          log-slave-updates=1

          #用于slave服務(wù)器,io線程會(huì)把server id與自己相同的event寫入日志,與log-slave-updates選項(xiàng)沖突

          replicate-same-server-id=0

          server_id=10112879101

          # 打開二進(jìn)制日志功能.

          log-bin =/home/data/mysql/binlog/mysql-bin.log

          #relay-log日志

          relay-log=mysql-relay-bin

          master-info-repository=TABLE

          relay-log-info-repository=TABLE

          #不寫入binlog二進(jìn)制日志中的數(shù)據(jù)庫

          binlog-ignore-db=mysql # No sync databases

          binlog-ignore-db=test # No sync databases

          binlog-ignore-db=information_schema # No sync databases

          binlog-ignore-db=performance_schema # No sync databases

          #寫入binlog二進(jìn)制日志中數(shù)據(jù)庫

          binlog-do-db=business_db

          binlog-do-db=user_db

          binlog-do-db=plocc_system

          #清理binlog

          expire-logs-days=15

          max_binlog_size = 1073741824 # Bin logs size ( 1G )

          #使binlog在每1000次binlog寫入后與硬盤同步

          sync_binlog = 1000

          #指定只復(fù)制哪個(gè)庫的數(shù)據(jù)

          replicate-do-db=business_db

          replicate-do-db=user_db

          replicate-do-db=plocc_system

          #開啟事件調(diào)度器Event Scheduler

          event_scheduler=1


          #MySQL能暫存的連接數(shù)量。

          back_log = 500


          #MySQL允許最大的進(jìn)程連接數(shù),

          max_connections = 6000


          #每個(gè)用戶的最大的進(jìn)程連接數(shù)

          max_user_connection = 3000

          #每個(gè)客戶端連接請(qǐng)求異常中斷的最大次數(shù)

          max_connect_errors = 6000

          #表調(diào)整緩沖區(qū)大小。

          table_cache = 614


          #表描述符緩存大小,可減少文件打開/關(guān)閉次數(shù)

          table_open_cache = 2048

          #設(shè)置在網(wǎng)絡(luò)傳輸中一次消息傳輸量的最大值。

          max_allowed_packet = 64M

          # 在一個(gè)事務(wù)中binlog為了記錄SQL狀態(tài)所持有的cache大小

          binlog_cache_size = 1M

          # 獨(dú)立的內(nèi)存表所允許的最大容量.

          max_heap_table_size = 256M


          #Sort_Buffer_Size被用來處理類似ORDER BY以及GROUP

          sort_buffer_size = 8M


          #用于表間關(guān)聯(lián)緩存的大小,和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每個(gè)連接獨(dú)享。

          join_buffer_size = 8M

          #thread_cache_size表示可以重新利用保存在緩存中線程的數(shù)量

          thread_cache_size = 128

          #此值表示允許應(yīng)用程序在同一時(shí)間運(yùn)行的線程的數(shù)量.

          thread_concurrency = 8

          #此值用來緩沖 SELECT 的結(jié)果并且在下一次同樣查詢的時(shí)候不再執(zhí)行直接返回結(jié)果

          query_cache_size = 64M

          #指定單個(gè)查詢能夠使用的緩沖區(qū)大小

          query_cache_limit = 2M

          #被全文檢索索引的最小的字長

          ft_min_word_len = 4

          #設(shè)置MYSQL線程使用的堆大小

          thread_stack = 192K

          #設(shè)定默認(rèn)的事務(wù)隔離級(jí)別.可用的級(jí)別如下:

          #READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

          transaction_isolation = READ-COMMITTED

          #此值表示內(nèi)存中臨時(shí)表的最大大小

          tmp_table_size = 256M


          #binlog日志類型

          #mixed:混合型

          binlog_format=mixed

          #開啟慢查詢?nèi)罩?/p>

          slow_query_log


          #文件格式

          log_output = FILE


          # 所有的使用了比這個(gè)時(shí)間(以秒為單位)更多的查詢會(huì)被認(rèn)為是慢速查詢

          long_query_time = 0.5

          #慢查詢?nèi)罩疚恢?/p>

          slow_query_log_file=/usr/local/mysql/mysqld_slow.log


          ########MyISAM 相關(guān)選項(xiàng)

          #用于索引的緩沖區(qū)大小

          key_buffer_size = 2048M

          #MySql讀入緩沖區(qū)大小。

          read_buffer_size = 2M

          #MySql的隨機(jī)讀(查詢操作)緩沖區(qū)大小。

          read_rnd_buffer_size = 16M

          #批量插入數(shù)據(jù)緩存大小,

          bulk_insert_buffer_size = 16M

          #MyISAM表發(fā)生變化,重建索引時(shí)所需的緩沖

          myisam_sort_buffer_size = 128M

          #MySQL重建索引時(shí)所允許的臨時(shí)文件的大小

          myisam_max_sort_file_size = 1G

          #如果一個(gè)表擁有多個(gè)索引, MyISAM 會(huì)通過并行排序使用多個(gè)線程去修復(fù)他們。

          myisam_repair_threads = 1

          # 自動(dòng)檢查和修復(fù)沒有適當(dāng)關(guān)閉的 MyISAM 表.

          myisam_recover


          ########INNODB相關(guān)選項(xiàng)

          #如果你的MySQL服務(wù)包含InnoDB支持但是并不打算使用的話,

          #skip-innodb

          #這對(duì)Innodb表來說非常重要,Innodb把所有的數(shù)據(jù)和索引都緩存起來,此參數(shù)設(shè)置越大,數(shù)據(jù)存取時(shí)所需要的磁盤I/O越少。

          innodb_buffer_pool_size = 2048M

          # InnoDB 將數(shù)據(jù)保存在一個(gè)或者多個(gè)數(shù)據(jù)文件中成為表空間

          innodb_data_file_path = ibdata1:1024M:autoextend

          # 文件IO的線程數(shù),一般為 4

          innodb_file_io_threads = 4

          # 允許線程數(shù)量。

          innodb_thread_concurrency = 16


          # 如果設(shè)置為1 ,InnoDB會(huì)在每次事務(wù)提交后將事務(wù)日志寫到磁盤上,

          # 基于性能考慮,可以設(shè)置為0或2,但要承擔(dān)在發(fā)生故障時(shí)丟失數(shù)據(jù)的風(fēng)險(xiǎn)。

          # 0代表日志只大約每秒寫入日志文件并且日志文件刷新到磁盤.

          # 2代表每次提交后日志寫入日志文件,但是日志文件每秒刷新到磁盤上。

          innodb_flush_log_at_trx_commit = 2

          #此參數(shù)用于寫日志文件所用的內(nèi)存大小,以M為單位。

          innodb_log_buffer_size = 16M

          #此參數(shù)用于確定日志文件的大小

          innodb_log_file_size = 1024M

          #日志組中的文件總數(shù)

          innodb_log_files_in_group = 3

          # InnoDB的日志文件所在位置

          #innodb_log_group_home_dir

          # 在InnoDB緩沖池中最大允許的臟頁面的比例

          innodb_max_dirty_pages_pct = 90

          # InnoDB用來刷新日志的方法

          innodb_flush_method=O_DSYNC

          # 在被回滾前,一個(gè)InnoDB的事務(wù)應(yīng)該等待一個(gè)鎖被批準(zhǔn)多久

          innodb_lock_wait_timeout = 30

          [mysqldump]

          # 不要在將內(nèi)存中的整個(gè)結(jié)果寫入磁盤之前緩存. 在導(dǎo)出非常巨大的表時(shí)需要此項(xiàng)

          max_allowed_packet = 64M

          [mysql]

          no-auto-rehash

          #指定一個(gè)請(qǐng)求的最大連接時(shí)間,對(duì)于4GB左右的內(nèi)存服務(wù)器來說,可以將其設(shè)置為5-10。

          wait_timeout = 10

          #將沒有使用索引的查詢也記錄下來

          log-queries-not-using-indexes


          主站蜘蛛池模板: 国产在线步兵一区二区三区| 国产主播一区二区三区| 精品无码人妻一区二区免费蜜桃| 国产精品无码一区二区三区不卡 | 中字幕一区二区三区乱码| 久久se精品一区二区影院| 国产微拍精品一区二区| 精品一区二区久久| 黄桃AV无码免费一区二区三区 | 亚洲国产精品一区二区九九| 91精品福利一区二区| 久久国产午夜一区二区福利| 香蕉视频一区二区| 日韩AV片无码一区二区不卡| 亚洲AV无码一区二区三区在线| 一区二区乱子伦在线播放| 久久亚洲中文字幕精品一区| 日本丰满少妇一区二区三区| 国产精品一区二区资源| 国产精品免费综合一区视频| 国产成人精品亚洲一区 | 日本一区视频在线播放| 国产成人综合亚洲一区| 免费国产在线精品一区| 精品综合一区二区三区| 亚洲av片一区二区三区| 精品久久久久中文字幕一区| 亚洲国产精品成人一区| 丝袜人妻一区二区三区| 国产精品区一区二区三在线播放| 国产精品无码一区二区三级| 日韩精品无码一区二区中文字幕| 狠狠色婷婷久久一区二区| 精品国产亚洲一区二区三区| 日韩精品一区二区三区色欲AV| 日韩中文字幕一区| 国产精品亚洲专区一区| 精品乱子伦一区二区三区高清免费播放| 亚洲第一区精品日韩在线播放| 狠狠色成人一区二区三区| 性色A码一区二区三区天美传媒 |