<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # mysql概念和性能優化 #### ID自增主鍵 一張表中,ID 自增主鍵,當 insert 了 10 條記錄之后,刪了第8,9,10條記錄,MYSQL 重啟,再 insert 一條記錄,這條記錄的 ID 是 11 還是 8 ? 答案是: 1. 當表類型是 MyISAM,那么 ID 是11,**因為 MyISM 表會把自增主鍵的最大 ID 記錄到數據庫文件**,重啟 MySQL 自增主鍵的 ID 也不會丟失 2. 當表類型是 InnoDB,那么是 8,**InnoDB 表只是會把自增主鍵的最大 ID 記錄到內存中**,所以重啟數據庫或者對表進行 OPTIMIZE 操作,都會導致最大的 ID 丟失。 #### SELECT \* 和 SELECT 全部字段的 2 種寫法有何優缺點? 1. 前者要解析數據字典,后者不需要 2. 結果輸出順序,前者與建表列順序相同,后者按指定字段順序 3. 表字段改名,前者不需要修改,后者需要修改 4. 后者可以建立索引進行優化,前者無法優化 5. 后者的可讀性比前者要高 #### 字段排除 如果我希望獲取排除數據表中的`content`字段(文本字段的值非常耗內存)之外的所有字段值,我們就可以使用field方法的排除功能,例如下面的方式就可以實現所說的功能: ``` <pre class="calibre13">``` Db<span class="token1">:</span><span class="token1">:</span><span class="token3">table</span><span class="token1">(</span><span class="token4">'user'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">withoutField</span><span class="token1">(</span><span class="token4">'content'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">select</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> ``` ``` 則表示獲取除了content之外的所有字段,要排除更多的字段也可以: ``` <pre class="calibre13">``` Db<span class="token1">:</span><span class="token1">:</span><span class="token3">table</span><span class="token1">(</span><span class="token4">'user'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">withoutField</span><span class="token1">(</span><span class="token4">'user_id,content'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">select</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> <span class="token6">//或者用</span> Db<span class="token1">:</span><span class="token1">:</span><span class="token3">table</span><span class="token1">(</span><span class="token4">'user'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">withoutField</span><span class="token1">(</span><span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">,</span><span class="token4">'content'</span><span class="token1">]</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">select</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> ``` ``` #### 提交的字段合法性檢測 除了查詢操作之外,`field`方法還有一個非常重要的安全功能--**字段合法性檢測**。`field`方法結合數據庫的寫入方法使用就可以完成表單提交的字段合法性檢測,如果我們在表單提交的處理方法中使用了: ``` <pre class="calibre13">``` Db<span class="token1">:</span><span class="token1">:</span><span class="token3">table</span><span class="token1">(</span><span class="token4">'user'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">field</span><span class="token1">(</span><span class="token4">'title,email,content'</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">insert</span><span class="token1">(</span>$data<span class="token1">)</span><span class="token1">;</span> ``` ``` 即表示表單中的合法字段只有`title`,`email`和`content`字段,無論用戶通過什么手段更改或者添加了瀏覽器的提交字段,都會直接屏蔽。因為,其他所有字段我們都不希望由用戶提交來決定,你可以通過自動完成功能定義額外需要自動寫入的字段。 > 在開啟數據表字段嚴格檢查的情況下,提交了非法字段會拋出異常,可以在數據庫設置文件中設置: > ``` > <pre class="calibre15">``` > <span class="token6">// 關閉嚴格字段檢查</span> > <span class="token4">'fields_strict'</span> <span class="token">=></span> <span class="token5">false</span><span class="token1">,</span> > > ``` > ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看