10-08 36—40


36.mysql 下面那些查詢不會使用索引

between, like "c%" , not in, not exists, !=, <, <=, =, >, >=,in

37.mysql 中 varchar 與 char 的區別以及 varchar(50)中的 50 代表的含義

varchar與char的區別char是一種固定長度的類型,varchar則是一種可變長度的類型 
盡可能的使用 varchar 代替 char ,因為首先變長字段存儲空間小,可以節省存儲空間,	
其次對於查詢來說,在一個相對較小的字段內搜索效率顯然要高些。

varchar(50)代表的含義:
varchar(50)中50的涵義最多存放50個字符,varchar(50)和(200)存儲hello所占空間一樣,但后者在排序時會消耗更多內存,
因為order by col采用fixed_length計算col長度(memory引擎也一樣) 

38.從delete語句中省略where子句,將產生什么后果?

A. delete語句將失敗因為沒有記錄可刪除 
B. delete語句將從表中刪除所有的記錄    *****
C. delete語句將􏰀示用戶進入刪除的標准 
D. delete語句將失敗,因為語法錯誤 

39.敘述mysql半同步復制原理

mysql的主備庫通過binlog日志保持一致,主庫本地執行完事務,binlog日志落盤后即返回給用戶;備庫通過拉取主庫binlog日志來同步主庫的操作。默認情況下,主庫與備庫並沒有嚴格的同步,因此存在一定的概率備庫與主庫的數據是不對等的。半同步特性的出現,就是為了保證在任何時刻主備數據一致的問題。相對於異步復制,半同步復制要求執行的每一個事務,都要求至少有一個備庫成功接收后,才返回給用戶。實現原理也很簡單,主庫本地執行完畢后,等待備庫的響應消息(包含最新備庫接收到的binlog(file,pos)),接收到備庫響應消息后,再返回給用戶,這樣一個事務才算真正完成。在主庫實例上,有一個專門的線程(ack_receiver)接收備庫的響應消息,並以通知機制告知主庫備庫已經接收的日志,可以繼續執行。

40.sql 查詢

存在的表有
\1. products(商品表) columns 為 id, name, price
\2. orders(商城訂單表) columns 為 id, reservation_id, product_id, quentity(購買數量)
\3. reservations(酒店訂單表) columns 為 id,user_id, price, created

需要查詢的:

  1. 各個商品的售賣情況, 需要字段 商品名 購買總量 商品收入

  2. 所有用戶在2018-01-01至2018-02-01下單次數,下單金額,商城下單次 數, 商城下單金額

  3. 歷月下單用戶數: 下單一次用戶數, 下單兩次用戶數, 下單三次及以上用戶 數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM